
VBA超入門シリーズ:その3 ~基本ルール~
はじめに
の続きです。
聞きなれない単語が増えてきますよ!!
Subプロシージャ
、、、ぷ、ぷろしーじゃ??
プロシージャ 【 procedure 】
「手続き」という意味の英単語。
コンピュータプログラム内で複数の命令や処理などを一つにまとめ、外部から呼び出し可能にしたものをこのように呼ぶ。IT用語辞典 プロシージャとはより引用
VBAでプログラムを記述したあとで、実際に実行するにはプログラムを呼び出す必要があります。その呼び出す単位となるのがプロシージャです。
プロシージャの構文は以下の通り。
Sub プロシージャ名()
End Sub
「Sub」で始まり「End Sub」で終わり、この間にプログラムを記述していきます。
プロシージャを識別するために「Sub」の後にプロシージャ名を記述します。
プロシージャ名にはアルファベット、ひらがな、漢字、数字が使用可能、
記号はアンダーバー(_)のみ使用可能です。
プロシージャ名の先頭は文字を使わないといけません。
例
Sub procedure()
Sub プロシージャ名()
Sub プロシージャ_1()
実際にコードウィンドウに記述していきます。
Sub プロシージャ_1()
Range("A1") = 100
End Sub
Sub プロシージャ名()
Range("A2") = 200
End Sub
1つのモジュール内に複数のプロシージャを記述できます。
複数のプロシージャを記述した場合、自動的にプロシージャとプロシージャの間に横線が入ります。
実行してみます。
2つのプロシージャを記述したので「プロシージャ_1」と「プロシージャ名」が出てきます。
今回は「プロシージャ名」を実行します。
無事実行!
「プロシージャ名」が呼び出され、そのプログラム(Range("A2") = 200
)が実行されました。
事に「A2セル」に「200」を記述することができました。
コードの記述ルール
中身を充実させていきます。
プロシージャを定義したら、SubとEnd Subの間に実際にExcelに行わせたい処理を表すコードを記述します。
コードはプロシージャ内に複数記述することができます。
Sub 記述ルール()
Range("A1") = 100
Range("A2") = 200
Range("A3") = 300
End Sub
3行のコードです。
1行毎に1つの処理を行います。「テスト」プロシージャが呼びだされたとき上から順に処理されます。
まずは「Range(“A1”) = 100」←セルA1に100を記述
次に「Range(“A2”) = 200」←セルA2に200を記述
最後に「Range(“A3”) = 300」←セルA3に300を記述
VBAでは改行を入れることで一つの処理が終わったと判断されます。
もしも1つの行に複数の処理を記述したい場合は、一つめの処理の後にコロン(:)を記述し、二つ目の処理を記述します。
Sub 記述ルール()
Range("A1") = 100 : Range("A2") = 200
Range("A3") = 300
End Sub
また、改行されるまでが一つの処理なので途中で改行できません。
Sub テスト()
Range("A1")
= 100
End Sub
このように書いてしまうと「Range(“A1”)」と「= 100」は別処理とみなされます。
文法的に間違いなのでエラーです。
処理が長くなり見やすさのために途中で改行したい場合には、半角スペースの後にアンダーバー(_)を記述します。
Sub 改行表示()
Range("A1") _
= 100
End Sub
上記コードは下に書いたものと同じ扱いになります。
Sub 改行表示()
Range("A1") = 100
End Sub
プロシージャについてとプロシージャ内のコードの記述方法のルールがなんとなーくわかってきました。
次回は文法について学習しましょう。
次回に続く。