【VBA】If~Thenステートメントを使って条件分岐をしてみよう
ifは英語の意味そのままで「もし~だったら」のことで、VBAの制御構文の中では一番基本的なものだと思います。
条件分岐と言われるやつですね。
初めて条件分岐という言葉を使った時にはかっこよさのあまりに震えたものです。
今回はシンプルなものを作ってどんなものかと知ってもらえればと思います。
目次
If~Thenステートメントって?
冒頭でも触れましたが、If~Thenステートメントは条件によって処理を振り分けるときに使います。
場合によって演算子や論理演算子を使った条件式を指定したりすのですが、今はその辺はおいておきましょう。
(イメージ)
If 条件 Then (Falseの場合) 「※1」へ飛ぶ
↓(Trueの場合)
処理A
↓
End If
↓ ※1
・
・
・
一番シンプルなIfステートメントだとこんな感じです(あくまでイメージ)。
「条件」が成り立つとき(Trueの場合)は「処理A」を実行し、「条件」が成り立たないとき(Falseの場合)は何もしないといったもの。
書き方
If 条件式 Then
条件式が真(True)の場合に実行される処理
Else
条件式が偽(False)の場合に実行される処理
End If
真(True)の場合はThen以降の処理を実行、
偽(False)の場合はElse以降の処理を実行するというものです。
実際にやってみよう!
数字を使うと分かりやすいかと思います。
Sub お試しIF()
Dim a As Integer
a = 100
If a > 50 Then
MsgBox "aは50より大きい"
Else
MsgBox "aは50より小さい"
End If
End Sub
解説
Dim a As Integer
a = 100
「変数aには整数が入ることを宣言」「aに100を代入」
If a > 50 Then
MsgBox "aは50より大きい"
「もしaが50より大きかったらメッセージボックスで"aは50より大きい"と表示して!」
Else
MsgBox "aは50より小さい"
「もしaが50より小さかったらメッセージボックスで"aは50より小さい"と表示して!」
今回の場合、変数aには100という整数が入っているので50よりも大きいです。
なので実行結果は「"aは50より大きい"」です。
(実行結果)
まとめ
今回の例ではコード内で完結するものですが、条件を「If Range("A1").Value = 100 Then」などにすると「もしA1に100が入っていたら…」となり実践で使えそうな匂いがしてきますね。
条件分岐などを行い始めると何だかプログラムっぽい気がします。