Excel VBAの変数名の命名規則

このページではExcel VBAの変数名の命名規則をまとめた。

スポンサーリンク

変数に使う文字の制限

・アルファベットは使用できる。漢字とひらがな、カタカタも使用できる。

○ test
○ テスト

・数字は使用できる。ただし変数名の先頭には使えない。

○ buf1
× 1buf

・アンダーバーは使用できる。ただし変数名の先頭には使えない。

○ buf_test
× _buftest

・スペースは使用できない。

× buf test

・アンダーバー以外の記号は使用できない。クエスチョンマークやハイフンなどすべて使用不可で

× test?
× 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. テスト
  2. 1月
  3. _VBA
  4. VBA_BASIC
  5. VBA-BASIC

正解を見る

1, 4

コメント