【Excel VBA】ifとelseを使って条件分岐させよう

Excel VBA

「分岐?if?なんだか難しそう。」
VBAを学習する上で避けて通れない条件分岐ですが、苦手意識を持つ人が多くいらっしゃいます。

マクロを条件によって分岐をさせる事で一気にプログラミング感が増しますが、一つずつ紐解いていくと「あれ?以外と簡単なんですね」となりますので是非最後まで読んで下さい!!

スポンサーリンク

条件分岐って?

プログラミングになると難しく考えすぎてしまう人もいますが、実は日常の中で条件分岐はよく使われます。

例えば休日に天気によって行き先を変える場面では
「晴れたらピクニックで曇ったら映画行こうよ!雨だったら家でだらだらしようかなー」
みたいな会話がありますよね。

条件によって処理を変える訳ですが、先程の会話では「天気」が条件になっています。
処理が「どこどこに行く」の部分ですね。

スポンサーリンク

実際にコードで記述してみる

先程の天気によって行き先を変える処理を、実際にVBAで記述したのでみてみましょう。
天気によって違う文字がメッセージボックスで出力されるマクロです。

3行目の“雨”がweatherに入っているので、このマクロの結果は”家でゆっくり過ごす”になります。

このマクロは標準モジュールに貼り付けてそのまま実行する事が出来ます。
weatherの値を“晴れ”“くもり”に変えて実行してみてください。結果が変わるはずですよ。

どうでしょうか?先程の話と合わせて見ると「あ~なんとなく分かるかも?」となりませんか?
ここからは数行毎に分割して詳しく解説していきます。

この2行では「weather」という文字列が入る変数を宣言し、変数に”雨”の文字を入れています。
例に挙げたマクロでは実際の天気を表しています。

変数については別の記事で解説していますので、詳細はこちらの記事でご確認下さい。

【VBA】日本語は使える?変数の使い方とルールについて解説!!
あまり聞き慣れない言葉ですが、VBAを上手く使う為には変数を知る必要があります。この記事では変数の使い方とルール、そもそも変数って何?変数名に日本語は使えるの?といった疑問について解説します!

If

この部分を日本語付きにしてみると

if(もし) weather(天気が) = “晴れ” Then(だったら)
“ピクニックに出かける”とメッセージを出力する。


となります。結構簡単じゃないですか?

ElseIf

さらに条件式を付け足したい時は、ElseIf を使います。ただし最初の条件式は「If」にする必要がある為、2つ目以降の条件を付けたい時にしか使用出来ません。

「ElseIf」は「その他にもし」と訳すと理解しやすいですよ。
「ElseIf」に使用回数の制限はない為、全ての条件を「ElseIf」でつらつらと記述する事も可能です。

こちらも先程と同じように日本語付きにすると

ElseIf(その他にもし) weather(天気が) = くもり Then(だったら)
“映画を見に行く”とメッセージを出力する。


になります。

Else

Else(その他) は「if」と「elseif」で指定した条件以外の全てをここで処理します。
今回の例だと”晴れ”と”くもり”は指定されていますが、天気には雨や雪もありますよね。
一つずつ指定して処理するのは難しいですし、種類が多くなると漏れが出る可能性もあります。

条件に合う合わないに関わらず、全て処理をしないといけない場合には必ず「Else」を使いましょう。
「Else」は一つのIf文の中で一回しか使用出来ません。

スポンサーリンク

If文で気をつける事

If文は必ず If 〇〇 Then ✕ ✕ End If のようにIfで始まり、End Ifで終わる必要があります。
逆に「ElseIf」と「Else」は無くても問題ありませんので、使用したい場面によって使い方を変えましょう。

Ifを記述したら、追加で条件を付ける前に「End If」を記述する事をオススメします!!

コメント

タイトルとURLをコピーしました