目次
経緯
VBAでプログラムを作成する中で、
条件分岐をさらに細かく増やしたいと考え、
今回、**If ElseIf Else
**構文を使った分岐方法について学びました。
解決方法:If~ElseIf~Else構文を使う
今回は、現在の時間に応じて処理を切り替えるという実例で学習しました。
時間による分岐コード例
Dim now_time As Date
now_time = Now
If now_time < TimeValue("9:00:00") Then
' 9時以前の場合に実行するプログラム
MsgBox "9時前の処理です"
ElseIf now_time > TimeValue("17:00:00") Then
' 17時以降の場合に実行するプログラム
MsgBox "17時以降の処理です"
Else
' それ以外(9時~17時の間)の場合
MsgBox "通常時間帯の処理です"
End If
コード解説
Now
関数で、現在の日時+時刻を取得します。TimeValue("9:00:00")
のようにして、時間の比較を適切に行います。If
→ElseIf
→Else
と順に条件を評価し、最初に一致したブロックが実行されます。
※文字列(”9:00:00″)を直接比較すると不安定になるため、TimeValue
関数を使用するのが安全です。
まとめ
VBAで複数の条件に応じた分岐を行うには、
If 条件 Then
ElseIf 条件 Then
Else
End If
の基本構文を正しく使うことが重要です。
時間帯に応じた処理振り分けなど、さまざまな場面で役立つテクニックですので、
今後さらに応用範囲を広げていきたいと思います。
ここまでお読みいただき、誠にありがとうございました。