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)
第19回.総合練習問題1
第20回.条件分岐(IF)
第21回.条件分岐(ElseIf)
第22回.条件分岐(Select Case)
第23回.メッセージボックス(MsgBox関数)
第24回.インプットボックス(InputBox関数)
第25回.名前付き引数について
第26回.総合練習問題2
第27回.ブック・シートの選択(Select,Activate)
第28回.セル・行・列の選択(Select,ActivateとCurrentRegion)


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

テンキーのスクリーンキーボード作成|ユーザーフォーム入門(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)
スピらない スピル数式 スピらせる|エクセル雑感(2023-12-06)
イータ縮小ラムダ(eta reduced lambda)|エクセル入門(2023-11-20)


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

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」をお願いいたします。
本文下部へ