【VBA】if文の基礎が5分で理解できる!Excelマクロ【条件分岐】
プログラムを覚える上で条件分岐の習得は必須です。条件分岐を組み合わせることで柔軟なプログラムを作成することができます。
今回はExcelマクロ(VBA)のIf文を例に、誰でも5分で理解できる記事を書きました。
初心者向けに丁寧に書きますので最後までお付き合いいただけると嬉しいです。
では、確認していきましょう!
- プログラミング初学者の人
- Excelマクロ(VBA)初学者の人
- 条件分岐の基礎を学習したい人
関連記事
条件分岐の考え方
はじめに条件分岐の考え方を説明します。
条件分岐の一番簡単な考え方なのでここから理解していきましょう!
条件分岐とは
条件分岐について考えていきましょう。
例としてテストの点数で考えていきます。テストの点数を元に合格不合格の判定を行ってみましょう
テストの点数を元に条件分岐を行います。
例では条件分岐を一つ設置しました。
テストの点数をもとに
としました。
ある一定のデータをもとに結果を判定することを条件分岐と言います。
Excelマクロ(VBA)ではIf文を使用することで条件分岐を実現してます。本記事では簡単なIf分を使用して条件分岐の説明を行いたいと思います。
条件分岐がよく使用される例
条件分岐がよく使用される例を確認していきましょう!
- エラー以外の場合に処理が実行される
- 値が数字の場合のみ処理が続行される
- セルに文字が入力されている場合のみ処理が続行される
処理を続行するかしないかによく使われています。
また、○○の場合のみ実行されるや○○以外の場合のみ実行されるといった時に使用されてます
汎用性があり、いろいろな場面で使用されているのでぜひこの機会に学習しましょう
次からはExcelマクロのサンプルプログラムを例に確認していきます
VBAでIf文の使用法
Excelマクロ(VBA)でIf文を使用する方法を確認しましょう!
本記事では以下3種類の実装方法の確認をします。テストの条件分岐を作成することを目的に紹介します。
- If文を使用した合格判定の実装
- If、Elseを使用した不合格判定の実装
- 例外処理について
Ifを使用した合格判定の実装
IIf分を使用し、合格の判定を行う処理を実装してみましょう!
サンプルプログラム
If文を使用したサンプルプログラムです。
Sub ifSample1()
' 点数を入力する変数を宣言
Dim point
' 点数を入力
point = InputBox(" 得点を入力してください")
'If文の開始
If point >= 80 Then
MsgBox " 合格です!"
End If
End Sub
処理の流れを確認しましょう
- 変数[point]に得点を入力(6行目)
- pointの得点を確認(10行目)
- 80点以上の場合"合格です"と表示される(point >= 80)
9行目以降の部分に条件分岐使用をしてます。
点数が80点以上の場合のみを考慮してます。
IfとElseを使用した不合格判定の実装
先ほどの処理に加えて
If分にElseを追加するだけで実装が可能です。
サンプルプログラム
If文とElseを使用したサンプルプログラムです。
Sub ifSample2()
' 点数を入力する変数を宣言
Dim point
' 点数を入力
point = InputBox(" 得点を入力してください")
'If文の開始
If point >= 80 Then
MsgBox " 合格です!"
Else
MsgBox "不合格です!"
End If
End Sub
処理の流れを確認しましょう
- 変数[point]に得点を入力
- pointの得点を確認
- 80点以上の場合"合格です"と表示される
- それ以外の場合"不合格です"と表示される(Elseでそれ以外を実装)
11行と12行が追加されていることを確認してください。
サンプルプログラムでは80点以上以外の場合は不合格と表示されるプログラムに変更しました。
0未満、101点以上の除外処理を実装
If文とElse文を使用した例では0点未満や101点以上の点数が入力された場合でも合格や不合格の結果を出力させるプログラムになってます。
サンプルプログラムに変更を加えて実現していきます。
サンプルプログラム
例外処理を考慮したサンプルプログラムです。
Sub ifSample3()
' 点数を入力する変数を宣言
Dim point
' 点数を入力
point = InputBox(" 得点を入力してください")
'If 分の開始
If point > 100 Or point < 0 Then
MsgBox " 実在しない得点が入力されました "
ElseIf point >= 80 Then
MsgBox " 合格です!"
Else
MsgBox "不合格です!"
End If
End Sub
処理の流れを確認しましょう
- 変数[point]に得点を入力
- pointの得点を確認
- 101点以上、0点未満の場合は"実在しない"と表示される(point > 100 Or point < 0)
- それ以外で、80点以上の場合"合格です"と表示される
- それ以外の場合は"不合格です"と表示される
9行目と10行目が追加されていることを確認してください。
一番最初に例外処理を入力することでその後のデータは全て実在する点だと判断できます。
最初に例外を省くことでわかりやすいプログラムを作成することが可能です。
VBAの条件分岐の種類
Excelマクロ(VBA)での条件分岐の種類について確認しましょう。
全部で2種類の使用方法があります。特徴を捉えて両方の説明をしていきますl
構文 | 使用頻度 | 使用用途など |
If | ★★★★★ | ・単純(3種類まで)な条件分岐に使用される ・Ifが多くなりすぎると難解なソースコーどに なってしまうためSelect文を使うべきである |
Select Case | ★★☆☆☆ | ・複雑(4種類以上)の条件分岐に使用される ・Ifに比べるとソースコードが読みやすくなる |
どちらの使用方法も長所がありますが、初心者の方は一旦If文だけ覚えましょう!
If分を取得してからSelect Case文を学ぶようにすることがおすすめです。
まとめ
いかがだったでしょう?
プログラミング初学者向けに条件分岐の基本をまとめてみました!
- データ(テストの点数)をもとに実行される結果が変わる
- いろいろなプログラムで使用されているのですぐに覚えるべき
- 初心者の人はとりあえずIf文の取得をしよう!
エクセルマクロ(VBA)の学習に役立てば嬉しいです
ではまたー
ディスカッション
コメント一覧
まだ、コメントがありません