【VBA】if文が1から10まで一発でわかる!【条件分岐】
Excelマクロ(VBA)でIf文が使われてないプログラムはありません。
If文を使いこなすことによってプログラミングの幅が広がり、効率的なプログラムを作成することができるようになります。
本記事ではIf文の使用方法を1から10まで全てを説明します。
本記事を読むことにで効率的かつ最適化されたプログラムを作成することができるようになります!
If文を基礎から学びたい方は関連記事を読んでみてください
- If文の基本を学習済みの方
- If文の種類を詳しく学習したい方
If文使用方法の種類
まずはじめにIf文を使用する種類を確認しましょう!
5種類に分けてそれぞれを考えてみます。
下にいくにつれて使用難度が上がっていきます。
種類 | 使用頻度 | 使用難度 | 用途 |
If文 | ★★★★★ | ★☆☆☆☆ | ・○○の場合だけ処理 |
If Else文 | ★★★☆☆ | ★★☆☆☆ | ・○○の場合は処理 ・○○の場合以外は別の処理 |
If ElseIf文 | ★★☆☆☆ | ★★☆☆☆ | ・○○の場合は処理 ・××の場合は処理 |
If ElseIf Else文 | ★★★★☆ | ★★★☆☆ | ・○○の場合は処理 ・××の場合は処理 ・どちらにも合致しない 場合は別の処理 |
If文のネスト | ★★★☆☆ | ★★★★☆ | ・○○の場合は処理 ・○○の場合かつ××の場合は処理 |
次から、それぞれの種類に対する確認していきましょう
作成したいプログラムの図とテストプログラムを書きますので一つづつ確認していきましょう!
処理に条件式が必要になりますが、条件式についての詳しい説明は別記事で後日行います。
If文
If文の使用方法を確認しましょう!
一番基本的な構文になります。
この使い方がわからないとこの後のIf応用が全て理解できなくなってしまいます。If文の使い方から理解しましょう
使用構文
If文の使用構文の確認をしましょう
If文を使用する場合はこのような使い方になることを覚えましょう。
手順の確認を行いましょう
- 条件式①に合致する場合、処理①の処理が行われる文になります
If文を覚えると他の文に応用ができるため確実に理解をしましょう。
作成するプログラム
作成するプログラムの確認をしましょう。
以下のプログラムの作成します。
- 点数の確認を行う
- 点数が80点以上の場合は合格と出力する
テストプログラム
テストプログラムの確認です
という構文で80点以上の場合の条件を指定します。
条件に合致した場合は合格ですと出力されるプログラムになってます。
Sub ifSample()
Dim point
point = InputBox(" 点数を入力してください")
'Pointが80以上の場合だけ合格と表示される
If point >= 80 Then
MsgBox "合格です!"
End If
End Sub
If Else文
If Else文の確認をしましょう!
○○の場合とそれ以外という2択の実行ができる文になります。
考え方としてはまだ単純なのでリラックスして学びましょう
使用構文
If Else文の使用構文を確認しましょう
If Else文を使用する場合はこのような使い方になることを覚えましょう。
詳細の処理手順を確認しましょう
- 条件式①に合致する場合は処理①が実行されます。
- それ以外の場合は処理②が実行されます。
- 必ずどちらかの処理が実行されることになります。
作成するプログラム
作成するプログラムの確認をしましょう。
以下のプログラムの作成します。
- 点数の確認を行う
- 点数が80点以上の場合は合格と出力する
- それ以外の場合は不合格と出力する
テストプログラム
テストプログラムの確認です
という構文でIf以外を指定しています。
80点以上以外(79点以下)の点数は全て不合格と出力されます。
Sub ifElseSample()
Dim point
point = InputBox(" 点数を入力してください")
'Point が80 点以上のとき合格と表示
If point >= 80 Then
MsgBox "合格です!"
' それ以外は不合格と表示
Else
MsgBox " 不合格です !"
End If
End Sub
If ElseIf文
If ElseIf文の確認をしましょう!
○○の場合は処理される。それ以外で××の場合は別の処理がされるという実行ができます。
この辺りから複雑になってきます。自分のペースで学んでいきましょう。
使用構文
If ElseIf文を使用する場合はこのような使い方になることを覚えましょう。
詳細の処理手順を確認しましょう
- 条件式①に合致する場合は処理①が実行されます
- 条件式①に合致しなかったもので条件式②に合致するものは処理②が実行されます。
- どちらの条件にも合致しなかったものについてはどの処理も実行されません。
作成するプログラム
作成するプログラムの確認をしましょう。
以下のプログラムの作成します。
- 点数の確認を行う
- 点数が80点以上の場合は合格と出力する
- 点数が49点以下の場合は不合格と出力する
テストプログラム
テストプログラムの確認です
という構文で49点以下を指定しています。
49点以下の場合は不合格ですと出力されるようになります。
Sub ifElseIfSample()
Dim point
point = InputBox(" 点数を入力してください")
'Point が80 点以上のとき合格と表示
If point >= 80 Then
MsgBox "合格です!"
' Point が49 点以下の場合は不合格と表示
ElseIf point <= 49 Then
MsgBox " 不合格です !"
End If
End Sub
If ElseIf Else文
If ElseIf Else文の確認をしましょう!
If Else文とIf ElseIf文の応用です。先述した処理を理解していれば簡単に理解ができます。
使用構文
If ElseIf Else文を使用する場合はこのような使い方になることを覚えましょう。
詳細の処理手順を確認していきましょう
- 条件式①に合致する場合は処理①が実行される
- 条件式①に合致しなかったもので条件式②に合致する場合は処理②が実行される
- 条件式①も条件式②も合致しない場合は処理③が実行される
- 必ずどれかの処理が実行される
作成するプログラム
作成するプログラムの確認をしましょう。
以下のプログラムの作成します。
- 点数の確認を行う
- 点数が80点以上の場合は合格と出力する
- 点数が49点以下の場合は不合格と出力する
- それ以外(50点〜79点)は再試験と出力する
テストプログラム
テストプログラムの確認です
Else文とIfElse文を組み合わせたものになります
上の構文から順番に処理されることに注意しましょう
Sub ifElseIfElseSample()
Dim point
point = InputBox(" 点数を入力してください")
'Point が80 点以上のとき合格と表示
If point >= 80 Then
MsgBox "合格です!"
' Point が 49 点以下の場合は不合格と表示
ElseIf point <= 49 Then
MsgBox " 不合格です"
' それ以外は再試験を行なってくださいと表示
Else
MsgBox " 再試験を行なってください"
End If
End Sub
If文のネスト(入れ子)
If文のネストを確認していきましょう!
ここで新しい文はありません。If文の処理の中にIf文を入れるという考え方です。
複雑な処理になるのでフローチャートを書いてからプログラミングするとわかりやすくなります。
使用構文
If文のネストを使用する場合はこのような使い方になることを覚えましょう。
詳細の処理手順を確認していきましょう
- 条件式①と条件式②に合致する場合は処理①②が実行される
- 条件式①にだけ合致する場合は処理①が実行される
作成するプログラム
作成するプログラムの確認をしましょう。
以下のプログラムの作成します。
- 点数の確認を行う
- 点数が80点以上の場合は合格と出力する
- さらに、点数が90手にじょうの場合は優秀と出力する
テストプログラム
テストプログラムの確認です
両方のIfに合致した場合のみ処理が行われます。
Sub ifnest()
Dim point
point = InputBox(" 点数を入力してください")
' Pointが80点以上の場合
If point >= 80 Then
'さらに、Pointが90以上の場合
If point >= 90 Then
MsgBox " 優秀ですね!"
End If
MsgBox " 合格です!"
End If
End Sub
まとめ
いかがだったでしょう?
If文の使用方法を種類別に説明してきました。
If文を使っていないプログラムはありません。
各使用用途を理解し、効果的に使うことでより良いプログラミングを行えるようになります。
ただ、If文をネストしすぎると分かりづらいプログラミングになってしまうので注意してくださいね!
ではでは
Excelマクロ(VBA)の基礎もまとめてみました。
ディスカッション
コメント一覧
まだ、コメントがありません