• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:If~ThenステートメントとAnd演算子)

If~ThenステートメントとAnd演算子

このQ&Aのポイント
  • windows7、エクセル2013でIf~ThenステートメントとAnd演算子を使用して処理を行いたいが、構文がエラーになる。
  • セルに式が入っていて計算結果がエラーの場合や空白、0の場合は処理を行わず、それ以外の場合に処理を行いたい。
  • 現在の構文ではエラーが発生しているが、どこが悪いのかわからない。

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

  • ベストアンサー
  • f272
  • ベストアンサー率46% (8467/18126)
回答No.1

If IsError(Cells(x, 20)) Then ElseIf (Cells(x, 20)) = 0 Or (Cells(x, 20)) = "" Then Else y = Cells(x, 20) * Cells(x, 23) End If

gx9wx
質問者

お礼

Thenを使う行は1行でと思ったのですが やはり2行でないとできないようです。 ありがとうございました。

その他の回答 (2)

  • Nouble
  • ベストアンサー率18% (330/1783)
回答No.3

素人の、戯言 かも、知れません お許しください。 例えば、 (Cells(x, 20))) = 0 と、されていますが Cells() は、 謂わば 構造体への参照で 端的に、言うと .Value以外の値も、内包しています お示しの式、では 構造体中の、 どのメンバーの値を 評価対象に、するのか 指定してません よね? なので、 Cells(x, 20) を、 Cells(x, 20).Value と、試してみて 頂けませんか? 参考にどうぞ https://www.moug.net/tech/exvba/0100047.html

gx9wx
質問者

お礼

ご丁寧にありがとうございました。

  • mt2015
  • ベストアンサー率49% (258/524)
回答No.2

こんな感じでどうでしょう。 ・先にセルがエラーで無い事を確認しないと、値の確認(0や空白の確認)でエラーになります。 ・セルが空白でも0でも値は0なのでまとめました。 If IsError(Cells(x, 20)) = False Then   If Cells(x, 20) <> 0 Then     y = Cells(x, 20) * Cells(x, 23)   End If End If 質問のコードで気になりましたが、and と or の違いについて、もう少し理解が必要かと思えました。

gx9wx
質問者

お礼

遅くなって申し訳ありません。 >and と or の違い はい。確かに勘違いしておりました。 ありがとうございました。

関連するQ&A