コードの記述

広告

Subプロシージャを定義したら、「Sub」から「End Sun」の間に実際にExcelに行わせたい処理を表すコードを記述していきます。

コードはプロシージャ内に複数記述することができます。

Sub プロシージャ名()
    Range("A:1").Value = 10
    Range("A:2").Value = 20
    Range("A:3").Value = 30
End Sub

3行のコードが書かれていますが、1行毎に1つの処理を行っています。そして、プロシージャが呼び出された時、コードは上から順番に実行されていきます。例えば上記の例で言えばまず「Range("A:1").Value = 10」が実行され、次に「Range("A:2").Value = 20」が実行され、最後に「Range("A:3").Value = 30」が実行されます。

VBAでは、1つの処理ごとに区切り文字のようなものは存在しません。改行されるまでが1つの処理と見なされます。もしも1つの行に複数の処理を記述したい場合は、どこからどこまでが1つの処理なのかを示すため処理と処理の間にコロン(:)を記述することで1つの行に複数の処理を記述できます。

Sub プロシージャ名()
    Range("A:1").Value = 10 : Range("A:2").Value = 20
    Range("A:3").Value = 30
End Sub

また改行までが1つの処理となるため、例え1つの処理を記述するのに長くなってしまったとしても途中で改行してはいけません。例えば下記のように記述するのは誤りです。

Sub プロシージャ名()
    Range("A:1").Value
       = 10
End Sub

この場合、「Range("A:1").Value」と「= 10」は別の処理と見なされます。そしてどちらも文法的に間違っているためエラーとなってしまいます。

どうしても途中で改行したい場合には、処理が次の行にまたがっていることを表すため半角スペースの後にアンダーバーを記述します。

Sub プロシージャ名()
    Range("A:1").Value _
       = 10
End Sub

上記のように書いた場合には、次のように書いたものと同等と見なされます。

Sub プロシージャ名()
    Range("A:1").Value = 10
End Sub

以上がプロシージャ内のコードの記述方法のルールとなります。では次からVBAでのプログラミングをする場合の文法を確認していきます。

Excel VBA入門の他の記事を見てみる

( Written by Tatsuo Ikura )