[Excel2013 で VBA] If 文および If〜Else 文

今回は If 文、および If〜Else 文を学ぶ。
前回までのプログラムは常に一本道であったが、If 文を学ぶと 状況に応じて処理が分岐するプログラムを記述できるようになる。

If 文

まず、If 文を用いたプログラムとして、以下のソースコードを記述してもらう。
(Visual Basic Editor の起動方法を忘れた場合は「第一回:プログラムを書き始めるまでの準備」を参考にすること)



なお、このプログラムには If 文以外にも のように前回までに学んだ内容が含まれているので、忘れた人は復習しておこう。

復習の部分を除いて If 文の部分のみに着目すると、以下のようになる。

If 条件 Then
    命令 (複数の命令でも良い)
End If


上記のような記述により、以下のような動作が実現される。 上記のプログラムにおいては、 という内容になっていることに注意しよう。

これを模式的に表すと、以下の様になる。







If〜Else 文

上のプログラムは、「x を 2 で割った余りが 0 (つまり偶数)」の時のみ、 命令を実行するプログラムであった。

x が奇数のときにも何か命令を実行したい場合は、以下のように If〜Else 文を用いる。



以下のような文の構造に注意しよう。

If 条件 Then
    命令1 (複数の命令でも良い)
Else
    命令2 (複数の命令でも良い)
End If


この場合の模式図は以下の様になる。





ElseIf の利用



ここまでは、一つの条件に対し、その条件が正しいか、正しくないかで2通りに分岐させた。
実際のプログラミングでは、命令を3通り、4通りと分岐させたいことがしばしばある。
そのような場合は ElseIf によって条件を追加していく。構造は以下の通り。

If 条件1 Then
    命令1 (複数の命令でも良い)
ElseIf 条件2 Then
    命令2 (複数の命令でも良い)
ElseIf 条件3 Then
    命令3 (複数の命令でも良い)
…
Else
    命令n  (複数の命令でも良い)
End If


これを模式的に表すと下図のようになる。



このようなプログラムの一例として、以下のものを挙げる。




これは、与えられた整数が を判定するプログラムである。



←キーボードからの入力条件文の書き方→

Excel 2013 で学ぶ Visual Basic for Applications (VBA)に戻る