Excel VBAのコードは、一般的に1つ以上の文から構成されます。
たとえば、「Range(“A1”).Value = 3(セルA1に数字3を入れる)」が1つの文です。
今回は、文の書き方のルールについて説明します。
VBAの文のルール1:文の途中で空白やタブを含めることは可能
VBAのコードにおいて、空白やタブに厳密な決まりはなく、スペースが何文字分空いていてもエラーになることはありません。
単語と単語の間に空白(タブでもOK)が1文字分以上あれば、問題ありません。
それに加え、ほとんどの場合VBAのコードは、VBE(Visual Basic Editor)で記述・作成します。
VBEは、単語と単語に間にある空白を補正してくれる機能があり、空白やタブが何文字分空いていようが、自動的に半角1文字分に補正してくれます。ただし、文頭の空白は補正されませんが、文頭に空白やタブが何文字分入ってようともエラーにはなりません。
気にすることは、単語と単語の間など、空白(スペース)を入れるべきところで空白が入れることで、空白が入っていない場合にはエラーになってしまいます。
VBAの文のルール2:改行には「 _ (スペース+アンダーバー)」を使う
一つの文が長い場合などには、文の途中で開業を加えることができます。
その場合には、改行したい場所に「 _ 」 (スペース + アンダーバー)を記述します。
例えば、以下のコードのように改行したい場所に 「 _ 」 を記述します。
Sub 文の途中で改行()
Range("A1").Value = _
"こんにちは"
End Sub
ただし、下の例のように単語の途中で改行することはできません。
Ran _
ge(“A1”).Value = “こんにちは” ⇒ 単語(Range)の途中で改行できず、エラーになる。
VBAの文のルール3:大文字・小文字の区別はない
VBAでは基本的に大文字・小文字の区別はありません。
例えば
Range(“A1”) を range(“a1”) と記述しても問題ありません。
どちらも「セルA1」と認識してくれます。
VBEには、大文字・小文字の区別なく記述すると、自動的に大文字と小文字を適切に変換する機能があり、上述のように
range(“a1”)と記述すると、 Range(“a1”) に自動的に変換してくれます。
ただし、””(ダブルコーテーション)で囲った部分は変換してくれません。
これは、ダブルコーテーションで囲った部分は文字列として扱うため、大文字・小文字を変換する必要がないことから、あえて変換しないのです。(今回のケースでは、a1のままでも問題ありません。)
VBAの文のルール4:全角・半角の区別はない
VBAでは、全角・半角の区別がありません。
つまり全角でコードを記述しようが、半角コードを記述しようが問題ありません。
また、VBEでコートを記述すると、全角で記述した文字を自動的に半角に変換してくれます。
ただし、””(ダブルコーテーション)で囲った部分は変換してくれません。
VBAの文のルール5:コメントには「’(シングルコーテーション)」を使う
コメントとは、名前のとおり、VBAコードの動作には関係しないメモ的な情報のことです。
自分が記述したコードであっても、時間が経ってしまうと、なにが書いてあったのか覚えていないことがあります。
まして、他人が書いたコードを読み解くのはとても大変なことです。
しかし、コードの要所要所にコメントを残しておくことで、そのコードが何をしているのか概要を把握しやすくなります。
Excel VBAでは、コメントの記述には「 ’(シングルコーテーション)」を使います。
ある行において、「 ’ 」を記述した以降のその行の文はコメントとみなされ、実行されなくなります。
Sub コメントの記述()
' Range("A1").Value = "こんにちは" 'シングルコーテーション以降はコメントになり、実行されない
Range("B1").Value = "こんばんは" 'この行は実行される
End Sub
コメント