01-VBA

制御構文|Excel VBA (Part.3)【If Then】ネスト・論理演算子利用編

お知らせ

こちらの記事は、電子書籍「難しく考えないExcel VBA基礎学習編」として出版されました。記事は途中までが試し読みの対象となります。

howahowablogのVBA記事が電子書籍にて販売となりました。

目標

VBAのIf-Thenステートメント(条件分岐)のネストについて理解し利用できる

論理演算子を利用した複数の条件での条件分岐を理解し利用できる

この記事で扱うIfステートメントは2種類です!

制御構文|Excel VBA (Part.2)でIfステートメントを利用した単純な条件分岐を行いました。Part.3ではIfステートメントの条件分岐を段階的に行わせる処理を実行してみます。段階的に条件を適用させる方法としては以下の2種類が存在します。

  1. Ifステートメントを入れ子にする(ネストする)
  2. 複数の条件を論理演算子を利用して順番に処理する

この記事では、これらについてサンプルプログラムを準備して確認していきます。

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ソフト・ウィルス対策ソフトについて書いています。...
RELATED POST
01-VBA

Excel VBA の「デバッグ」(Part.3)「イミディエイトウィンドウ」「ウォッチウィンドウ」

2022年12月14日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site