お知らせ
こちらの記事は、電子書籍「難しく考えないExcel VBA基礎学習編」として出版されました。記事は途中までが試し読みの対象となります。
howahowablogのVBA記事が電子書籍にて販売となりました。
目標
VBAのIf-Thenステートメント(条件分岐)について理解し利用できる
- If Thenステートメントを読める。
- If ThenステートメントのThenを付け忘れしない。
- If ThenステートメントのEnd Ifを誤って消しても気づく、追記できる。
- 記述できる条件の種類を増やす。
- 職場でIf Thenステートメントがでてきても困らない。
書籍やWebサイトでも制御構文を学習する場合、練習用のプログラムとして準備されるものは基本的には文法的な内容や動きに着目した設計になっています。
言い換えると、具体的な利用シーンを想定して学習するのは難しいと言えます。こういったことからも、この分野の学習は、まず「深く考えない」ことが重要です。
学習時のマイルストーンの中に「見たことがある!」を置いておくことはとても重要なことなので、「何に使われるのだろう?」は一旦、考えないようにしましょう。
- 「見たことがある!」を経験する
- 「何に使われるか?」は考えない
「練習用のプログラムが読める(できれば書ける)」ことが、学習時のひとまずのゴールです。
VBAの条件分岐
条件分岐には2種類ある
VBAで条件分岐を行う場合、その方法は大きく2種類に分けられます。
- 【If Thenステートメント】を使用する方法
- 【Select Caseステートメント】を使用する方法
今回は【If Thenステートメント】について扱います。
VBAのIf Thenステートメント
If Thenステートメントで扱える条件
If Thenステートメントの基礎学習では「条件」に「○○の値より小さい場合」や「○○の値より大きい場合」のような単純な条件を書くことが多いです。
その他にも、このIf Thenステートメントには以下のような色々な条件を利用することが出来ます。
- セルやダイアログボックスから取得した値(「空」も含む)
- MsgBoxなどのダイアログボックスのボタンの値
- 「値の表示形式」や「変数の型の種類」
この記事でも「If Thenステートメント」の動きを理解しやすい「取得した値」でのプログラムを扱っていきます。その他については別の記事で扱ってみようと思います。
If Thenステートメントの文法
If Thenステートメント
条件がひとつで処理は条件にあったときのみ行うパターン
構文 | ********************* If 条件 Then 条件に合ったときの処理 End If ********************* |
次のスクリプトを実行してみます。
If age >= 20 Then
MsgBox age & "ですね。お酒の購入をしていただけます。"
End If
サンプルプロシージャ
Option Explicit
'conditionalBranchIfという関数名に意味はなく自由な名前を付けることが出来ます。
Sub conditionalBranchIf_1()
Dim age As Byte
age = InputBox("注意1" & Chr(10) & _
"入力の年齢が20以上の場合のみ" & Chr(10) & _
"「お酒の購入をしていただけます。」のコメントが出力されます。" & Chr(10) & _
"注意2" & Chr(10) & _
"0から255までの数字以外が入力されるとエラーになります。" _
, "あなたの年齢を入力して下さい")
If age >= 20 Then
MsgBox age & "ですね。お酒の購入をしていただけます。"
End If
MsgBox "終了"
End Sub
実行結果
この記事の試し読みはここまでとなります。
If Then Elseステートメント
…
サンプルプロシージャ
…
実行結果
…
If Then ElseIfステートメント
…
サンプルプロシージャ
…
実行結果
…
今回は以上となります。
howahowablogのVBA記事が電子書籍にて販売となりました。
ブックマークのすすめ
「ほわほわぶろぐ」を常に検索するのが面倒だという方はブックマークをお勧めします。ブックマークの設定は別記事にて掲載しています。