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の書き方

TrackBack:2

TrackBack URL
条件に合致した行を削除するマクロ from インストラクターのネタ帳
ワイルドカードとOr演算子を使って条件を指定して、条件に合致した行を削除するExcel(エクセル)マクロをご紹介しています。
VBAでOr条件を3つ以上複数指定する from インストラクターのネタ帳
Excel VBAでOr条件を3つ以上の複数指定するサンプルマクロをご紹介しています。
[スポンサードリンク]

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

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

.