このページではExcel VBAの変数名の命名規則をまとめた。
変数に使う文字の制限
・アルファベットは使用できる。漢字とひらがな、カタカタも使用できる。
○ test
○ テスト
○ テスト
・数字は使用できる。ただし変数名の先頭には使えない。
○ buf1
× 1buf
× 1buf
・アンダーバーは使用できる。ただし変数名の先頭には使えない。
○ buf_test
× _buftest
× _buftest
・スペースは使用できない。
× buf test
・アンダーバー以外の記号は使用できない。クエスチョンマークやハイフンなどすべて使用不可で
。
× test?
× test-1
× test-1
変数名の長さによる制限
変数名の長さは、半角で255文字以内にする必要がある。
(通常のマクロ作成では、変数名の長さの制限にひっかかるような事態は起こらないだろう。エキスパート試験対策のために覚えておけば充分だ)
変数のスコープによる制限
同一のスコープ内で、同じ名前の変数を使うことはできない。下記のSubプロシージャ「test1」を実行するとコンパイルエラーが発生する。
Option Explicit Private buf As String Sub Test1() Dim buf As String Dim buf As String '変数名が重複している buf = "ABC" Debug.Print buf End Sub
しかし、次のSubプロシージャ「Test2」ではエラーが起こらない。2つの変数bufが、同一のスコープ内では宣言されていないからだ。
Option Explicit Private buf As String Sub Test2() Dim buf As String buf = "ABC" Debug.Print buf End Sub
予約語による制限
VBAが使用する予約語と同じ名前を変数に付けることはできない。予約語の例としては、Next, For, Call, While などがある。この他にもたくさんあるが、命令やステートメントで使用する言葉だと理解しておけばOKだ。
練習問題
変数の名前として適切なものはどれか。次の中から2つ選択しなさい。
- テスト
- 1月
- _VBA
- VBA_BASIC
- VBA-BASIC
正解を見る
1, 4
コメント