Excel VBA入門 その11:Excel VBAの文のルール

エクセルVBA VBA



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

コメント

タイトルとURLをコピーしました