【初心者向け】IF分を使った条件分岐をサンプルコードで解説!【Excel VBA】
こんにちは!『ルウちゃんのExcel Labo』管理人の@rouxchanblogです!
今回はこのような悩みについて解説します。
条件によって処理を分ける方法がわからない!
- IFステートメントを活用しよう
- Msgboxと組み合わせてわかりやすくしよう
- 複数分岐させるときはネスト(入れ子)してみよう
はじめに
条件によって処理を分けるにはIFステートメントを使いましょう!
マクロで自動化する中でこれからたくさんの条件分岐をさせることになりますので、この記事で確実にマスターしましょう!
詳しい説明の前に実際のサンプルコードと実行結果を見てみましょう!
入力に応じた結果が表示される欄を作りました。
入力欄に数字を入れてみて下のコードを実行させていきます。
Sub 条件分岐()
If Range("A2") = 10 Then
Range("B2") = "10です"
Else
Range("B2") = "10以外です"
End If
End Sub
このように10を入力した時と、10以外が入力された時で結果を変えることができました。
これがIFステートメントを使ったコードになります。
ちなみにIFステートメントはIF文と言ったり、条件分岐、分岐処理など様々な言い方がありますが意味はどれも同じです。
条件にあてはめて、その答えがTureの場合とFalseの場合で処理を分ける構文となっています。
それではさっそくIF文の基本的な書き方から見ていきましょう!
IF文の基本
まずは基本的なIF文の書き方です。
このような構成でコードを書いていきます。
この中ではじめに条件式というものを設定するのですが、ここで1つキーワードになってくるのが”比較演算子”です。
この比較演算子を使った条件式にあてはまるかどうかで処理を分けるのがIF文になります。
比較演算子とは
次に比較演算子の種類と意味について見ていきましょう!
比較演算子 | 意味 |
---|---|
= | 等しい |
<> | 等しくない |
> | より大きい |
>= | 以上 |
< | より小さい |
<= | 以下 |
このようにたくさんの比較演算子があります。
IF文を扱う上で必須になってくるので覚えておきましょう!
ボタンで処理を分岐させる方法
ここからは応用編になります。余裕がある方は学習してください。
次はMsgBoxの戻り値に応じて処理を分岐させるコードを見ていきましょう!
Sub 条件分岐()
If MsgBox("データを転記しますか", 1) = 1 Then
Range("B2") = Range("A2")
Else
MsgBox "処理を中止しました"
End If
End Sub
この入力欄のデータをMsgBoxの結果に応じて転記させるか、処理を中止させるかを選択できるようにしました。
↑このようなメッセージボックスを表示させます
MsgBoxには処理に応じた戻り値が設定されていますのでその戻り値を条件式に入力してあげることで、
このような確認用メッセージを表示させることもできます。
比較的簡単に実用的な使い方ができますのでぜひ試してみてください!
複数分岐させる方法
次は複数分岐をさせる方法を見ていきましょう!
方法としてはIF文の中にIF文を入れること2択から4択に条件を増やす方法となります。
これをネスト(入れ子)と言ったりするそうです。
考え方は簡単ですが、いざコードを書いてみるとかなりややこしくなりますので3層ぐらいまでにしておくことをおすすめします。
一応簡単な条件の複数分岐のサンプルコードを載せておきますので参考にしてください!
Sub 条件分岐()
If Range("A2") >= 100 Then
If Range("A2") >= 150 Then
Range("B2") = "150以上です"
Else: Range("B2") = "100〜149です"
End If
Else
If Range("A2") >= 50 Then
Range("B2") = "50〜99です"
Else: Range("B2") = "49以下です"
End If
End If
End Sub
まとめ
- IFステートメントを活用しよう
- Msgboxと組み合わせてわかりやすくしよう
- 複数分岐させるときはネスト(入れ子)してみよう
IF文はマクロを使って自動化していく上でかなり重要になってきますのでこの記事の内容を実際に手を動かしてマスターしていってください!
この記事で少しでも皆さんのお役に立てれば幸いです!
忘れないうちにお気に入り登録もお願いします!
ありがとうございました!
【参考書籍】
コメントはお気軽に!