目次
お知らせ
こちらの記事は、電子書籍「難しく考えないExcel VBA基礎学習編」として出版されました。記事は途中までが試し読みの対象となります。
howahowablogのVBA記事が電子書籍にて販売となりました。
リンク
目標
VBAのIf-Thenステートメント(条件分岐)のネストについて理解し利用できる
論理演算子を利用した複数の条件での条件分岐を理解し利用できる
この記事で扱うIfステートメントは2種類です!
制御構文|Excel VBA (Part.2)でIfステートメントを利用した単純な条件分岐を行いました。Part.3ではIfステートメントの条件分岐を段階的に行わせる処理を実行してみます。段階的に条件を適用させる方法としては以下の2種類が存在します。
- Ifステートメントを入れ子にする(ネストする)
- 複数の条件を論理演算子を利用して順番に処理する
この記事では、これらについてサンプルプログラムを準備して確認していきます。
Ifステートメントのネストの概要と利用方法
ネストとは
ネストとは、Ifステートメントなどの文が自身のブロックの中に別の文を持つ構造「入れ子構造」のことです。
ネストを利用したIfステートメントの利用方法
構文 | ********************* If 条件 Then 条件に合ったときの処理 If 条件 Then 条件に合ったときの処理 ElseIf 条件 Then 二番目の条件に合ったときの処理 Else 条件に合わなかったときの処理 End If End If ********************* |
Option Explicit
Sub babyLife1()
Dim months As Integer
Dim actionNum As Integer
months = InputBox("月齢を入力して下さい。")
actionNum = InputBox("知りたい情報の番号を入力して下さい" & Chr(10) _
& "睡眠時間" & Chr(9) & ":1" & Chr(10) _
& "授乳時間" & Chr(9) & ":2" & Chr(10) _
& "お風呂時間" & ":3")
If months <= 0 Then
If actionNum = 1 Then
MsgBox "0か月未満の新生児は、お昼は約2時間間隔、夜は3時間間隔で睡眠をとります。ママは睡眠不足になりがちなので家事など周囲の人が助けてあげましょう。"
ElseIf actionNum = 2 Then
MsgBox "0か月未満の新生児は、授乳の間隔は短いです。目が覚めたら授乳のタイミングとするのが一般的です。"
ElseIf actionNum = 3 Then
MsgBox "0か月未満の新生児は、沐浴となります。ガーゼを利用して優しく洗ってあげます。"
End If
ElseIf months <= 3 Then
If actionNum = 1 Then
MsgBox "1か月から3か月未満の赤ちゃんは、1日の中で約3時間間隔で睡眠を取ります。この時期もママは睡眠不足になりがちなので周囲の人は助けてあげましょう。"
ElseIf actionNum = 2 Then
MsgBox "1か月から3か月未満の赤ちゃんの授乳の間隔3時間おきです。目が覚めたら授乳のタイミングです。"
ElseIf actionNum = 3 Then
MsgBox "1か月から3か月未満の赤ちゃんは、お風呂に入ることが出来ます。湯船で抱っこしてガーゼで優しく洗ってあげます。"
End If
ElseIf months <= 6 Then
If actionNum = 1 Then
MsgBox "6か月未満の赤ちゃんは、夜の睡眠時間が約8時間と長くなります。授乳の間隔は減りますがおむつの交換もあるのでママは睡眠不足を補うためにも周囲の人は助けてあげましょう。"
ElseIf actionNum = 2 Then
MsgBox "6か月未満の赤ちゃんは、授乳以外にも離乳食が始まります。離乳食づくりも大変です。家事は家族で助け合いましょう。"
ElseIf actionNum = 3 Then
MsgBox "6か月未満の赤ちゃんは、お風呂に入ることが出来ます。湯船で抱っこしてガーゼで優しく洗ってあげます。"
End If
ElseIf months <= 8 Then
If actionNum = 1 Then
MsgBox "8か月未満の赤ちゃんは、夜の睡眠時間が約8時間ですが、お昼はお昼寝タイムを除いてお散歩や室内遊びなど起きている時間が増えます。日中の過ごし方が夜中の睡眠に影響します。家族でスケジュールの管理を頑張りましょう。"
ElseIf actionNum = 2 Then
MsgBox "8か月未満の赤ちゃんは、離乳食の回数が増えます。離乳食づくりも大変です。家事は家族で助け合いましょう。"
ElseIf actionNum = 3 Then
MsgBox "8か月未満の赤ちゃんは、お風呂に入ることが出来ます。湯船で抱っこしてガーゼで優しく洗ってあげます。"
End If
ElseIf months <= 11 Then
If actionNum = 1 Then
MsgBox "11か月未満の赤ちゃんは、夜の睡眠時間が約8~9時間です。お昼はお昼寝タイムを除いてお散歩や室内遊びなど起きている時間が増えます。日中の過ごし方が夜中の睡眠に影響します。家族でスケジュールの管理を頑張りましょう。"
ElseIf actionNum = 2 Then
MsgBox "11か月未満の赤ちゃんは、日中の食事はほとんどが離乳食になります。離乳食づくりも大変です。家事は家族で助け合いましょう。このころから柔らかい手作りおやつなども食べ始めます。"
ElseIf actionNum = 3 Then
MsgBox "11か月未満の赤ちゃんは、お風呂に入ることが出来ます。湯船で抱っこしてガーゼで優しく洗ってあげます。"
End If
ElseIf months <= 12 Then
If actionNum = 1 Then
MsgBox "12か月の赤ちゃんは、夜の睡眠時間が約8~9時間です。お昼はお昼寝タイムを除いてお散歩や室内遊びなど起きている時間が増えます。日中の過ごし方が夜中の睡眠に影響します。家族でスケジュールの管理を頑張りましょう。"
ElseIf actionNum = 2 Then
MsgBox "12か月の赤ちゃんは、日中の食事は普通食に変わっていきます。"
ElseIf actionNum = 3 Then
MsgBox "12か月の赤ちゃんは、お風呂に入ることが出来ます。湯船で抱っこしてガーゼで優しく洗ってあげます。"
End If
End If
End Sub
実行結果は次の順序でダイアログボックスが表示されます。選択する月数、知りたい情報の番号によって最終的な表示が変わります。
この記事の試し読みはここまでとなります。
論理演算子を利用したIfステートメント
論理演算子を利用するケース
…
論理演算子を利用したIfステートメントを書いてみる
…
今回は以上となります。
howahowablogのVBA記事が電子書籍にて販売となりました。
リンク
初心者も実践で通用!「VBA・VBS」おすすめ書籍5選 | 現役エンジニア&プログラミングスクール講師「VBA・VBS」初心者の方が実践業務の中でそれらを活用しt活躍できるために必要な知識を習得できる書籍を紹介しています。ページの下部には「おすすめのITスクール情報」「おすすめ求人サイト」について情報を掲載中。...
ブックマークのすすめ
「ほわほわぶろぐ」を常に検索するのが面倒だという方はブックマークをお勧めします。ブックマークの設定は別記事にて掲載しています。
「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】について解説している記事です。削除方法も掲載しています。...
【パソコン選び】失敗しないための重要ポイント | 現役エンジニア&プログラミングスクール講師【パソコン選び】失敗しないための重要ポイントについての記事です。パソコンのタイプと購入時に検討すべき点・家電量販店で見かけるCPUの見方・購入者が必要とするメモリ容量・HDDとSSDについて・ディスプレイの種類・バッテリーの持ち時間や保証・Officeソフト・ウィルス対策ソフトについて書いています。...