VBA入門
条件分岐(ElseIf)

ExcelマクロVBAの基本と応用、エクセルVBAの初級・初心者向け解説
公開日:2013年5月以前 最終更新日:2021-08-23

第21回.条件分岐(ElseIf)


前回のIFステートメントでは、真か偽の二択でした。
今回は、もっと多くの分岐が必要な、Ifステートメントで多肢条件分岐の場合の書き方です。


ステートメントとしては、Ifステートメントです。


IfステートメントのElseIfの構文

If 条件式1 Then
  条件式1が真の処理
[ElseIf 条件式2 Then
  条件式2が真の処理]
[ElseIf 条件式3 Then
  条件式3が真の処理]
・・・
[Else
  全ての条件式が偽の処理]
End If

[ ]は省略可能です。

条件式1に合致した場合(True)は、「条件式1が真の処理」が処理されます。
条件式1に合致しない場合(False)は、条件式2が判定されます。
条件式2に合致した場合(True)は、「条件式2が真の処理」が処理されます。
条件式2に合致しない場合(False)は、条件式3が判定されます。
条件式3に合致した場合(True)は、「条件式3が真の処理」が処理されます。
以下ElseIfが続く限り・・・


ElseIfの説明

ElseIf 条件式 Then
  条件式が真の処理

この部分は繰り返し何回も書く事が出来ます。
例えば、

If 条件式1 Then
  条件式1が真の処理
ElseIf 条件式2 Then
  条件式2が真の処理
ElseIf 条件式3 Then
  条件式3が真の処理
Else
  全ての条件式が偽の処理
End If

このように書きます。
これを、ElseIfを使わずに書くと、

If 条件式1 Then
  条件式1が真の処理
Else
  If 条件式2 Then
    条件式2が真の処理
  Else
    If 条件式3 Then
      条件式3が真の処理
    Else
      全ての条件式が偽の処理
    End If
  End If
End If

この二つのVBAコードは同じになります。
多肢分岐の場合は、ElseIfを使う事で、はるかに見易くなります。

ただし、できればこのElseIfより、Select Caseを使うことを考えましょう。
次回の、Select Caseを使う方が、より読みやすいVBAコードになる場合が多いです。




同じテーマ「マクロVBA入門」の記事

第18回.最終行の取得(End,Rows.Count)

・エクセルVBAにおける最終行取得の必要性 ・.End(xlDown):Ctrl+↓ ・.End(xlUp):Ctrl+↑ ・Endプロパティの方向(↑↓←→)について ・セルの行数を取得するRowプロパティ ・Cells(Rows.Count, 1).End(xlUp).Rowを日本語に訳す ・EndプロパティがRangeオブジェクトを返す ・Endプロパティの問題点 ・最終行に関するサイト内のページ
第19回.総合練習問題1
・マクロVBA練習問題 ・シンキングタイム ・マクロVBA練習問題解答へ
第20回.条件分岐(IF)
・Ifステートメントの構文 ・IFステートメントの条件式 ・Ifステートメントの使用例文 ・Ifステートメントのネスト(入れ子) ・サイト内のIfステートメント参考ページ ・最後に
第21回.条件分岐(ElseIf)
第22回.条件分岐(Select Case)
・Select Caseステートメントの構文 ・Select Case の例文 ・Select Case の応用
第23回.メッセージボックス(MsgBox関数)
・MsgBox関数の構文 ・名前付き引数 ・MsgBox関数のbuttonsの定数 ・MsgBox関数の戻り値の定数 ・MsgBox関数の例文 ・MsgBoxの使い道
第24回.インプットボックス(InputBox関数)
・InputBox関数の構文 ・名前付き引数 ・InputBox関数の例文
第25回.名前付き引数について
・仮引数と実引数 ・メソッドとは ・名前付き引数について ・名前付き引数の例文 ・名前付き引数の必要性
第26回.総合練習問題2
・マクロVBA練習問題 ・シンキングタイム ・マクロVBA練習問題解答へ
第27回.ブック・シートの選択(Select,Activate)
・アクティブ ・ブックをアクティブにする ・シートの選択、シートのアクティブ ・複数シートの選択(作業グループ化) ・複数ブックを開いている時のシート選択 ・VBAでの色々なシート指定方法
第28回.セル・行・列の選択(Select,ActivateとCurrentRegion)
・選択セルとアクティブセル ・セルの選択 ・セルをアクティブにする ・行の選択、列の選択 ・セル領域の選択 ・メソッドとはプロパティとは


新着記事NEW ・・・新着記事一覧を見る

ExcelマクロVBA入門目次|エクセルの神髄(2024-03-20)
VBA10大躓きポイント(初心者が躓きやすいポイント)|VBA技術解説(2024-03-05)
テンキーのスクリーンキーボード作成|ユーザーフォーム入門(2024-02-26)
無効な前方参照か、コンパイルされていない種類への参照です。|エクセル雑感(2024-02-17)
初級脱出10問パック|VBA練習問題(2024-01-24)
累計を求める数式あれこれ|エクセル関数応用(2024-01-22)
複数の文字列を検索して置換するSUBSTITUTE|エクセル入門(2024-01-03)
いくつかの数式の計算中にリソース不足になりました。|エクセル雑感(2023-12-28)
VBAでクリップボードへ文字列を送信・取得する3つの方法|VBA技術解説(2023-12-07)
難しい数式とは何か?|エクセル雑感(2023-12-07)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.RangeとCellsの使い方|VBA入門
3.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
4.繰り返し処理(For Next)|VBA入門
5.変数宣言のDimとデータ型|VBA入門
6.ブックを閉じる・保存(Close,Save,SaveAs)|VBA入門
7.並べ替え(Sort)|VBA入門
8.条件分岐(IF)|VBA入門
9.セルのクリア(Clear,ClearContents)|VBA入門
10.マクロとは?VBAとは?VBAでできること|VBA入門




このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。



このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ