• ベストアンサー

エクセルVBA 複数の条件を判定するIFの書き方

いつもお世話になっております。 ワークシート関数で =IF(AND(A1=C2,A1=D1,A1=E1),"☆","★") と同じ結果をたとえばA2セルに返すにはどのように 記述したらいいか教えてください。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.2

なぜあえてVBAなのかわかりませんが、もっと複雑な処理のうちの一部なのでしょうか。 とりあえず、質問の式と同じことをやろうとするのであれば、以下のような感じになるかと思います。 If Range("A1").Value = Range("C2").Value And Range("A1").Value = Range("D1").Value And Range("A1").Value = Range("E1").Value Then  Range("A2").Value = "☆" Else  Range("A2").Value = "★" End If

oresama
質問者

お礼

ありがとうございます。 andで繋げばよかったのですね。 ご想像の通り、ある処理を行う前提のチェックとしての判定です。 なので、 Then 以下は Call ☆なマクロ Else Call ★なマクロ End If となります。

その他の回答 (2)

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.3

そのままVBA化するなら、こんな感じでしょうか。 Range("A2").Value = _ IIf(Range("A1") = Range("C2") _ And Range("A1") = Range("D1") _ And Range("A1") = Range("E1"), _ "☆", "★")

oresama
質問者

お礼

ありがとうございました。 IIf関数を使うのかなと思いましたが 肝心のAndで繋ぐということを知りませんでした。 これはこれで、色々使いでがありそうです。

  • kaz-5919
  • ベストアンサー率26% (45/170)
回答No.1

VBAじゃなくても =IF(AND(A1=C2,A1=D1,A1=E1),"☆","★") ↑がC1にかいているのなら 同じ結果をA2に返すのは A2に「=C1」ではだめなんですか?

関連するQ&A