条件分岐について

今回の目標

  • 条件分岐とは何かを理解する

説明

本章の題材である条件分岐はExcelVBAを使用するに当たって必須です。
まずは、条件分岐とは何かを学んでみましょう。

条件分岐とは

『一定条件下でどのような処理をするか』です。例えば、「セルA1(テストの点数)が30未満なら"赤点"と入力する」です。要するに「~なら~する」といったことをしたい時に使用します。
図にすると下の通りになります。なお、下図の矢印でプログラムの動きを書いたものをフローチャートと呼びます。
条件分岐のフローチャート

ExcelVBAの条件分岐

ExcelVBAでは、主に2種類の構文による分岐があります。
各項目の詳細については次章より説明します。

  • If構文・・・使用頻度が高く、マクロを作成する場合は必須です。
    リンク:If文の使い方

  • Select構文・・・If構文より使用頻度は低めですが、覚えておきましょう。
    リンク:Select Caseの使い方

余談ですが、vbaでは三項演算子がありません。

コラム

このコラムは他のプログラミング(スクリプト)言語を勉強したことがある方のみ、お読みください。
ExcelVBAにはSwitch構文はなく、代わりにパワーアップ(?)したSelect構文が存在します。このSelect構文は文字列や数値の範囲のチェックも可能ですが、使用されているところをあまり見ません。
筆者も使用しておらず、変数の数値の比較時に「Ifは固定値や範囲でチェック可能」、「Switchは固定値のみチェック可能」と認識しているためです。
SwitchからSelectとなり、便利になったといっても、いまいちSelectで範囲指定することには抵抗があります。(Switch構文自体、使用する場面が限られている気がしますし。)
余談ですが、Switch関数なるものがあります。マイナーな関数であまり使われないようです。

確認テスト

次の問いに答えなさい。

  1. 条件分岐とは次のどれに該当するか。

    1. 処理を繰り返す。

    2. 一定条件下の場合の処理を行う。

    3. 処理を終了させる。

      【解答】

      B

      【解説】

      下記の通りです。

      1. 処理を繰り返す。
        →反復処理(ループ)です。次章以降に説明します。

      2. 一定条件下の場合の処理を行う。
        →条件分岐です。これが正解となります。

      3. 処理を終了させる。
        →終了処理です。
          命令処理を記載しなくても終了します。
          ([End]と記載すると、以降の命令を無視して終了します)

関連リンク

ページの先頭へ