【Excelマクロ】条件分岐 IF

Excelマクロ

条件分岐とIFステートメントの基本

VBAを扱っているとセルの内容や、コード上で取得した内容により、処理を変更したいことがあると思います。

「はい」の場合にはこの処理、「いいえ」の場合にはこの処理、「A列が◯」の場合はこの処理、など変更することができます。

条件の例

「はい」「いいえ」と選択肢が分かれる
A列が「東京都」である
A列が空白である

こうした条件に応じた処理を設定するのが、IFステートメントです。

IFステートメントの構造

IFステートメントの基本的な使い方は次の通りです。

If 条件 Then
    条件が正しい場合の処理
Else
    条件が正しくない場合の処理
End If

条件が「正しい場合」と「正しくない場合」で、それぞれ異なる動作を設定できます。

処理の部分に動作させたいコードを入力します。

また、「正しい場合」だけ処理する場合(正しくない場合の処理が不要の場合)は、Else以降を省略することも可能です。
※Elseと正しくない場合の処理の部分、End Ifは省略できない。

例:背景色を条件で分ける

以下のコードは、MsgBox関数を使い、「はい」または「いいえ」の選択に応じてセルA1の背景色を変更する例です。

r = MsgBox("背景色を赤色にしますか?", Buttons:=vbYesNo, Title:="色の設定")

If r = vbYes Then
    Cells(1, 1).Interior.Color = RGB(255, 0, 0) ' 赤色
Else
    Cells(1, 1).Interior.Color = RGB(128, 128, 128) ' グレー
End If

このコードでは、

  • 「はい」を選択した場合:セルA1の背景色が赤色に設定されます。
  • 「いいえ」を選択した場合:セルA1の背景色がグレーに設定されます。

まとめ

IFステートメントは、処理を条件によって分けることができます。

さまざまな条件を設定することができ、今回紹介したものや「セルの値が空白である」や「特定の文字列を含む」など、さまざまな場面で利用することができます。

ただし、「マクロの記録」ではIFステートメントを記録することはできません

VBAコードを自分で書くことができる方だけが使えるもので、プログラムの幅が広がりますので、ぜひ覚えていきましょう。

また、条件分岐に加えて「繰り返し処理」などもマクロ作成において非常に重要な要素です。これらをしっかり習得し、マクロを使いこなしていきましょう!

コメント