Home » エクセルマクロ・Excel VBAの使い方 » 条件分岐 » VBAのIf文で複数条件Orの書き方

VBAのIf文で複数条件Orの書き方

対象:Excel2003, Excel2007, Excel2010, Excel2013

VBAのIf文で複数条件Orの書き方

「エクセル vba if関数 or」
「excel vba if 複数条件」
といった検索で、このサイト・インストラクターのネタ帳へのアクセスが時折見られます

VBA(Visual Basic for Applications)でマクロを作り始めたばかりの方による検索でしょう。VBAのIf文で、複数条件の「Or」「または」を指定するにはどうすればいいのかを探している方による検索です。

書いてしまいがちな間違ったOr条件

例えば、A1セルの値が「a」か「b」のときに、B1セルに「○」を入力するような処理をしたいとします。

そのときにVBA初心者の方が書いてしまう書き方があります。

If Range("A1").Value = "a" Or "b" Then
 Range("B1").Value = "○"
End If

と書いてしまう方が少なくありません。

気持ちとしてはよくわかります。何をしたいのかもよくわかります。

[スポンサードリンク]

しかし、このコードを実行すると実行時エラーが発生して、下図のような

VBAのIf文で複数条件Orの書き方

「型が一致しません。」というメッセージが表示されます。

メニュー[デバッグ]-[VBA Projectのコンパイル]を実行してもエラーとならないので文法的には間違ってなさそうなため、どうしていいのか戸惑ってしまうのです。

Or条件を使ったVBAのサンプルコード

If文のOr条件は、以下のような書き方をしてあげてください。

▼VBAのIf文でOr条件の指定方法
※A1セルの値がaまたはbのときにB1セルに○を入力する例
If Range("A1").Value = "a" Or Range("A1").Value = "b" Then
 Range("B1").Value = "○"
End If

Or演算子の左側も右側も両方とも条件式をきっちり書いてあげてください。

ヒトは、

If Range("A1").Value = "a" Or "b" Then

という記述でもA1セルの値が「a」または「b」という条件なのだろうなとくみ取れますけれど、VBA的にはアウトです。上記のマクロのように、

If Range("A1").Value = "a" Or Range("A1").Value = "b" Then

と、書いてあげてください。

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » 条件分岐 » VBAのIf文で複数条件Orの書き方

「条件分岐」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.