みなさん、こんにちは、
みむすたーです。
今日は、Excel VBAの処理分岐について説明していきます。
もくじ
制御文
Excel VBAには、他のプログラミング言語と同様に、制御文があります。
制御文をプログラミング言語初学者のために説明しておくと、
制御文とは、処理するプログラムを何らかの条件によって、切り替えることです。
VBAの制御文には、2種類あります。
・if else文
・Select Case文
if else文
if else文の制御文は、VBAで以下のように書きます。
[text]If 条件A Then ‘ 条件Aが成り立つ場合に行う処理 ElseIf 条件B Then ‘ 条件Bが成り立つ場合に行う処理 Else ‘ 条件Aも、条件Bも成り立たない場合に行う処理 End If[/text]例えば、実際にVBAのプログラムとして書く場合は、以下のように書きます。
[text]Dim val As Integer val = 3 If val = 1 Then MsgBox "val は 1 です" ElseIf val = 2 Then MsgBox "val は 2 です" Else MsgBox "val は 1,2以外 です End If[/text]
さて、このプログラムを実行した際、
以下のようなダイアログが表示されます。
MsgBoxとは、指定された文字をダイアログに表示するための関数です。
関数については、以前のVBAの説明でお話しした通りです。
わからなければ、第5回で説明していますので、そちらをご覧ください。
また、If val = 1 Then ステップは、代入とは意味が異なります。
この val = 1 の = は比較演算子というものです。
比較演算子の処理の結果、Boolean型の True(真), False(偽) の二値になると考えましょう。
条件が成り立つ場合は、True が結果となり、それ以外は、Falseとなります。
比較演算子
上記で説明した条件Aや条件Bには以下の演算子を使います。
- a = b
→a と b の値は等しいときに結果が True となります。それ以外は、Falseが結果となります。 - a <> b
→a と b の値は等しくないときに結果が True となります。それ以外は、Falseが結果となります。 - a < b
→a が b より小さいときに結果が True となります。それ以外は、Falseが結果となります。 - a <= b
→a が b 以下のときに結果が True となります。それ以外は、Falseが結果となります。 - a > b
→a が b より大きいときに結果が True となります。それ以外は、Falseが結果となります。 - a >= b
→a が b 以上のときに結果が True となります。それ以外は、Falseが結果となります。
Select Case文
Select Case文の制御文は、VBAで以下のように書きます。
[text]Select Case(変数名) Case 候補1 ‘ 変数が保管しているデータが候補1と一致する場合に行う処理 Case 候補2 ‘ 変数が保管しているデータが候補2と一致する場合に行う処理 Case Else ‘ 変数が保管しているデータが候補1とも、候補2とも一致しない場合に行う処理 End Select[/text]例えば、実際にVBAのプログラムとして書く場合は、以下のように書きます。
[text]Dim val As Integer val = 3 Select Case(val) Case MsgBox "val は 1 です" ElseIf val = 2 Then MsgBox "val は 2 です" Else MsgBox "val は 1,2以外 です End If[/text]まとめ
VBAの条件については以上です。
この記事でお伝えしたかったことは、以下の2点です。
- VBAの制御文には、If Elseでの制御文と Select Caseでの制御文の2つ存在する。
- If Elseでの制御文の場合は、条件分に比較演算子を使って条件を指定する。
コメント