変数と似た仕組みに定数があります。定数とは、任意の数値や文字に、別名を付けるようなものです。
定数を定義するには、Constステートメントを使います。次のコードは、数値の100を定数MaxCountとして定義します。
Sub Sample59() Const MaxCount As Long = 100 If Range("A1") > MaxCount Then MsgBox "範囲を超えています" Else MsgBox "範囲内です" End If End Sub
もちろん、これは変数を使って次のように書くことも可能です。
Sub Sample59() Dim MaxCount As Long MaxCount = 100 If Range("A1") > MaxCount Then MsgBox "範囲を超えています" Else MsgBox "範囲内です" End If End Sub
変数と定数の違いは、次の通りです。
一度定義した定数は、途中で値を変更することはできません。
VBAでは、一般的に
Dim buf As Long = 100
のように、変数の宣言時に初期化することはできません。一方、定数は
Const Buf As Long Buf = 100
という書き方はできません。コード中は定数に値を格納することができないからです。そこで、定数では、宣言時に値を確定させます。
変数と定数のどちらを使うかに、厳密なルールはありません。しかし、定数の性質上コード中で変更されない値であり、別名を付けた方が可読性が高まるようなケースでは、変数ではなく定数を使うといいでしょう。