Home » エクセルマクロ・Excel VBAの使い方 » 条件分岐 » VBAでAnd演算子を使って条件を3つ以上指定する

VBAでAnd演算子を使って条件を3つ以上指定する

動作検証バージョン:64bit Windows 10 Pro + 32bit Excelバージョン2104 ビルド13929.20296 Microsoft Store)

「excelvba and 3つ」
「excel vba and 3つ以上」
といった検索でアクセスが時折あります。

Excel VBAでAnd条件を3つ以上の複数指定するには、どのように書けばいいのか探していらしたのでしょう。

[スポンサードリンク]

And条件3つのIf文のサンプル

アクティブなワークシートのA1:C1セルに数値を入力しておいて、以下のSubプロシージャを実行してみてください。

Sub 科目の得点が3つとも80以上だったときに合格と判定する()
 If Range("A1").Value >= 80 And Range("B1").Value >= 80 And Range("C1").Value >= 80 Then
  Range("D1").Value = "合格"
 Else
  Range("D1").Value = "不合格"
 End If
End Sub

3科目のテストの点数が入力されていて、3つとも80点以上だったときに「合格」、そうでなければ「不合格」と判定する例だと考えてください。

1行の文字数が多くて読み辛いと思いますが、

  If Range("A1").Value >= 80 And Range("B1").Value >= 80 And Range("C1").Value >= 80 Then

の部分が、And演算子を使って条件を3つ指定している箇所です。

And条件3つのIf文に改行を入れて

上記の書き方では読み辛いですから、以下のように改行を入れておくほうがイイでしょう。

Sub 科目の得点が3つとも80以上だったときに合格と判定する_改行あり()
 If _
  Range("A1").Value >= 80 And _
  Range("B1").Value >= 80 And _
  Range("C1").Value >= 80 Then
   Range("D1").Value = "合格"
 Else
   Range("D1").Value = "不合格"
 End If
End Sub

And演算子の前にも後ろにも、論理値を返す「Range("〇〇").Value >= 80」といった論理式を書くということです。

人間が見れば、なんとなく意味がわかる、

  If Range("A1").Value And Range("B1").Value And Range("C1").Value >= 80 Then

のような書き方ではダメです。

And条件3つの結果を論理値で出力するサンプル

「合格」「不合格」といった文字列を入力するためにIf文を使っていますが、TRUEまたはFALSEの論理値をD1セルに出力すればいいのであれば、以下のようなSubプロシージャです。

Sub 科目の得点が3つとも80以上だったときにTRUEとする()
 Range("D1").Value = _
  Range("A1").Value >= 80 And _
  Range("B1").Value >= 80 And _
  Range("C1").Value >= 80
End Sub

最終更新日時:2021-05-26 14:35

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » 条件分岐 » VBAでAnd演算子を使って条件を3つ以上指定する

「条件分岐」の記事一覧

検索


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

.