VBAでの基本的なコードの書き方
1. はじめに
第1回としてVBAの始め方を、第2回としてマクロを紹介しました。
今回はいよいよVBAでのコードの書き方を紹介します。他のプログラミング言語を知っている人にとっては当たり前の内容ですが、他の言語と微妙に書き方が違うと思いますので忘れた時などに参考にしてください。
2. コードの書き方
まずその前にVBAのエディタを表示します。
「開発」タブの「Visual Basic」をクリックします。
そして「挿入」から「標準モジュール」をクリックすると「Module1」が現れます。今回はここにコードを記載します。
またコードを実行する際は、緑色の右向き矢印をクリックしてください。
2.1 文頭と文末:Sub~End、Public・Private
コードを書くときは必ず頭にはsubを、文末にEnd subを記載します。
Subの横のfirstは私が決めた名前です。名前からプログラム内容が推測しやすい名前が良いです。カッコの中は引数などを指定することができます。
また Subは正確にはPublic Subの省略です。Public sub以外にPraivate subがあります。
Public subとPraivate subの違いは、
Public sub:どのモジュールからも呼び出せる
Private sub:記載されたモジュール内でしか使えない
になります。標準モジュールに記載する場合は基本Publicで記載すると思って問題ありません。フォームなどに直接プログラムを記載する場合はPrivateで書く場合もありますが、Publicで書いても問題はありません。
2.2 変数の定義:Dim
変数はDimを使って以下のように定義します。
変数の型について代表的なものは以下になります。
Boolearn:TrueかFalseか
Integer:-32768~32768の整数値
Long:-2147483648~2147483647の整数値
Double:小数点を含む数値
String:文字列
Variant:何でも(特にリストで使う場合が多い)
例えば繰り返し計算用の変数はintegerを使うことが多く、数値計算ではDoubleを使ったり、ユーザーが入力した文字列を取得した場合はStringを使ったりします。
また以下のように連続して変数を定義することも可能です。
2.3 繰り返し:for文
for文は繰り返し処理で使用します。
for文の書き方は以下です。
それでは簡単な使い方の紹介として、B列の1行目から10行目に1~10の数を順番に代入してみたいと思います。
ちなみに、以下のように入れ子構造で使うことも可能です。
入れ子構造の例として、A1~I9の列に九九の計算結果を表示したいと思います。
上記を実行すると以下のように九九の計算結果が表示されます。
入れ子構造は非常に使える技なのでぜひ活用してください。
2.3 分岐:if文
If文は処理の分岐に使われます。
書き方は以下です。
処理は上から順に行われることに注意してください。
具体例として2.2 for文の紹介で書いた九九の計算コードにif文を追加してみましょう。今回、3で割れる時は文字を赤色に、5で割れるときは文字を青色にしてみます。
実行結果は以下です。
3で割れる数は赤に、5で割れる数は青になっていますね。ただし注意してください。15は3でも5でも割れる数ですが赤色になっています。これは「3で割れる場合は赤色にする」という条件をfor文の一番上に書いているからです。予期しない動作をする時、for文の条件の書き方・順番が悪影響を及ぼしていることがあるのでご注意ください。
2.4 While 文
while文はある条件を満たすあいだは何度でも処理を繰り返します。
「条件を満たすあいだ」であり「条件を満たすまで」ではないので注意してください、条件を満たしたら終了します。
書き方は以下になります。
条件式を満たさない限り永遠と処理を繰り返すので注意してください。その場合はEscキーを押すと解除されます。
具体的な例として、2の1乗、2の2乗、...と2の階乗を計算していき100万を超えたら処理をストップさせるコードを書いてみます。
実行するとB列に上から順に2の1乗、2乗、3乗...と値が代入されていきます。2の20乗で100万を超えるためコードが終了します。
2.5 Until 文
until文はある条件を満たすまで何度でも処理を繰り返します。つまりWhile文と逆です。数値計算で残差を判定する時などに使うこともあります。
2.4のWhile文と同じように、2の階乗を計算して100万を超えたら処理を止めるコードは以下になります。
WhileがUntilに、条件式が<から>に変わっただけです。結果は同じなので省略します。
3. おすすめ書籍
このシリーズはプログラミング初心者にも非常に分かりやすくてお勧めです。
私はプログラミングを初めて勉強する際、3番目の本を大学時代に買ってすごく助かりました。今でも手元に置いてるくらいです。
4. 最後に
次回もVBAの基本的なコードの書き方を紹介します。