コードの記述
Subプロシージャを定義したら、「Sub」から「End Sun」の間に実際にExcelに行わせたい処理を表すコードを記述していきます。
コードはプロシージャ内に複数記述することができます。
Sub プロシージャ名()
Range("A:1").Value = 10
Range("A:2").Value = 20
Range("A:3").Value = 30
End Sub
- 「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