【技術記事】最短最速で学ぶ!Excel VBA入門 – 第6回:制御文 –

みなさん、こんにちは、
みむすたーです。

今日は、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での制御文の場合は、条件分に比較演算子を使って条件を指定する。

コメント