条件分岐について
今回の目標
- 条件分岐とは何かを理解する
説明
本章の題材である条件分岐はExcelVBAを使用するに当たって必須です。
まずは、条件分岐とは何かを学んでみましょう。
条件分岐とは
『一定条件下でどのような処理をするか』です。例えば、「セルA1(テストの点数)が30未満なら"赤点"と入力する」です。要するに「~なら~する」といったことをしたい時に使用します。
図にすると下の通りになります。なお、下図の矢印でプログラムの動きを書いたものをフローチャートと呼びます。
ExcelVBAの条件分岐
ExcelVBAでは、主に2種類の構文による分岐があります。
各項目の詳細については次章より説明します。
-
If構文・・・使用頻度が高く、マクロを作成する場合は必須です。
リンク:If文の使い方 -
Select構文・・・If構文より使用頻度は低めですが、覚えておきましょう。
リンク:Select Caseの使い方
余談ですが、vbaでは三項演算子がありません。
コラム
このコラムは他のプログラミング(スクリプト)言語を勉強したことがある方のみ、お読みください。
ExcelVBAにはSwitch構文はなく、代わりにパワーアップ(?)したSelect構文が存在します。このSelect構文は文字列や数値の範囲のチェックも可能ですが、使用されているところをあまり見ません。
筆者も使用しておらず、変数の数値の比較時に「Ifは固定値や範囲でチェック可能」、「Switchは固定値のみチェック可能」と認識しているためです。
SwitchからSelectとなり、便利になったといっても、いまいちSelectで範囲指定することには抵抗があります。(Switch構文自体、使用する場面が限られている気がしますし。)
余談ですが、Switch関数なるものがあります。マイナーな関数であまり使われないようです。
確認テスト
次の問いに答えなさい。
-
条件分岐とは次のどれに該当するか。
処理を繰り返す。
一定条件下の場合の処理を行う。
-
処理を終了させる。
【解答】
B
【解説】
下記の通りです。
処理を繰り返す。
→反復処理(ループ)です。次章以降に説明します。一定条件下の場合の処理を行う。
→条件分岐です。これが正解となります。処理を終了させる。
→終了処理です。
命令処理を記載しなくても終了します。
([End]と記載すると、以降の命令を無視して終了します)