
お世話になっております。
Excel2013のVBAでの構文を教えてください。
IF文の否定の複数条件で書いて色々試したのですが、なぜか処理されてしまいます。
例えば、りんごとばななに対して処理したくない時、以下のように書いても処理されてしまいます。
If h.Value <> "りんご" Or h.Value <> "バナナ" Then
Debug.Print h.Address
END IF
他にも
If Not h.Value = "りんご" Or Not h.Value = "バナナ" Then
でもだめです。
個別に
If h.Value <> "りんご" Then
If h.Value <> "バナナ" Then
すると大丈夫でした。
個別でもいいんですが、IF文の否定の複数条件はどのように書けばいいのでしょうか?

No.3ベストアンサー
- 回答日時:
No1の方の通りですが、
if 条件1 or 条件2 then
成立時の処理
end if
は、条件1が成立するか条件2が成立すれば、成立時の処理が実行されます。
ここで、h.valueがバナナのケースを考えると、
h.value <> "りんご" が成立します。つまり、条件1が成立します。
ゆえに、成立時の処理が実行されます。
一方
if 条件1 and 条件2 then
成立時の処理
end if
は、両方の条件が成立した場合のみ、成立時の処理が実行されます。
つまり、h.value <> "りんご" でかつ h.value <> "バナナ"
の場合、成立します。(りんごでもバナナでもない場合)
従って、
If h.Value <> "りんご" And h.Value <> "バナナ" Then
成立時の処理
end if
となります。
No.4
- 回答日時:
初心者がよくやる間違いです。
安易に日本語で考えていると間違います。
日本語で
「りんごでないか、バナナでないか」
って言うと、思い込みもあって、なんとなく正しい気がしてしまいます。
算数や数学でやった「かつ」「または」「ならば」とかを思い出しましょう。
真理値表を書くのも手です。
No.2
- 回答日時:
ちょっと変な書き方になりますが、
りんご であり バナナ でもある時 ①
りんご であり バナナ ではない時 ②
りんご ではなく バナナ である時 ③
りんご ではなく バナナ でもない時 ④
の4つが存在します。
例の状態では④だけ選びたいわけですね
Orで判定すると「りんごではない もしくは バナナではない」となるので、
③④ もしくは ②④ となってしまい、②③④が該当してしまいます。
Andで判定すると「りんごではない かつ バナナでもない」となるので、
④だけが選ばれるというわけですね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセル VBAで複数セル選択時エラーになる問題 3 2022/10/04 02:40
- Visual Basic(VBA) 稀に1円合いません? Sheet1から金額と個数を貼り付ける下記コードで、金額を切り上げるコードを何 3 2022/09/05 15:11
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) VBAでのループ順序について 3 2023/03/13 10:55
- Visual Basic(VBA) VBAで日付入力しているのですが 4 2023/03/02 11:25
- Visual Basic(VBA) VBAが止まります。 3 2022/08/31 14:09
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
このQ&Aを見た人はこんなQ&Aも見ています
-
エクセルVBAのIf,Then 構文でOr条件とAnd条件の結合方法?
Excel(エクセル)
-
vba フィルター 複数条件 3つ以上 完全一致除外
Visual Basic(VBA)
-
VBAでファイルを開くときにファイル名でワイルドカードを使用したいです
その他(プログラミング・Web制作)
-
-
4
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
5
VBA IF文でORを使ったとき後ろの条件が実行されない
Visual Basic(VBA)
-
6
エクセルVBAで5行目からオートフィルタモードに設定したいたい
Excel(エクセル)
-
7
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
8
worksheetFunctionクラスのVlookupプロパティを取得できません エラーへの対応
Visual Basic(VBA)
-
9
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
10
もしセルが#N/A"なら~をする・・・には?"
Excel(エクセル)
-
11
全ての変数を一気にリセットする方法はありますか?
PowerPoint(パワーポイント)
-
12
vbaで指定したセルより下の行を指定する方法について vbaの質問です。 例えば、「C6」セルより下
Excel(エクセル)
-
13
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
14
エクセル イベントマクロ Changeイベントを複数作りたい
Access(アクセス)
-
15
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
16
VBA スペースが入力されていても、空白セルと判断する方法
Excel(エクセル)
-
17
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
18
数式による空白を無視して最終行を取得するマクロ
Excel(エクセル)
-
19
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
20
連続する複数のセル値がすべて0であることを判定するマクロ
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コバエはバナナの皮から生まれ...
-
エクセルVBAのIF文の否定の複数...
-
「と比べると」と「に比べると」
-
バナナがすごく柔らかくなって...
-
この間、バナナを食べようと皮...
-
黄色いのにかたい バナナ
-
バナナの中心に穴?
-
列車内で、バナナを勧められたら?
-
果物で今買えるもの。安い順に...
-
昔のアイスで ダブルバナナって...
-
両手で握って亀頭が出てるのは...
-
バナナの皮を3つにむくと
-
なぜか突然バナナが嫌いになり...
-
会話が終わりかけていたときのL...
-
ドリアンの香り
-
バナナの皮
-
どうかどなたか教えてください。
-
三文字で母音が全て『あ』の食...
-
冷凍庫からバナナを出して、冷...
-
野生のサルは、バナナを皮ごと...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「と比べると」と「に比べると」
-
この間、バナナを食べようと皮...
-
エクセルVBAのIF文の否定の複数...
-
黄色いのにかたい バナナ
-
野生のサルは、バナナを皮ごと...
-
バナナの中心に穴?
-
三文字で母音が全て『あ』の食...
-
バナナがすごく柔らかくなって...
-
冷凍庫からバナナを出して、冷...
-
両手で握って亀頭が出てるのは...
-
会話が終わりかけていたときのL...
-
なぜか突然バナナが嫌いになり...
-
バナナの皮を3つにむくと
-
バナナ嫌いのバナナ克服法
-
子供の遠足のおやつについて
-
バナナは熟してくると皮が裂け...
-
コバエはバナナの皮から生まれ...
-
食べかけバナナの保存法
-
Access 2002で既定値に入力した...
-
バナナの芯について
おすすめ情報