「エクセル 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 Projectのコンパイル]を実行してもエラーとならないので文法的には間違ってなさそうなため、どうしていいのか戸惑ってしまうのです。
Or条件を使ったVBAのサンプルコード
If文のOr条件は、以下のような書き方をしてあげてください。
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の書き方