こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルVBAのIf,Then 構文でOr条件とAnd条件の結合方法?

ワークシート関数で書けば
=IF(OR(F18=0,AND(F15>0,F16>0)),TRUE)です。
これをVBAで書こうとして

If Sheet1.Range("F18") = 0 Or Sheet1.Range("F15") > 0 And Sheet1.Range("F16") > 0 Then
MsgBox True
Else
MsgBox False
End If

とやってみたのですが、正しくないようです。
どのように書けばいいのでしょうか?

投稿日時 - 2004-01-20 18:11:54

QNo.756330

困ってます

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

>とやってみたのですが、正しくないようです。

式は正しいと思いますよ

ANDとORは、ANDが先に演算されます。/*と+-では、/*が先に演算されるようなものです。

でも、わかり易くするために、#1のかたのように括弧をつけるほうが良いですね。

投稿日時 - 2004-01-20 19:12:54

お礼

よくわかりました。
ありがとうございました。

投稿日時 - 2004-01-25 16:35:01

ANo.3

このQ&Aは役に立ちましたか?

14人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(3)

ANo.2

しゃべるように、そのまま記述したらいかがですか。
--------
IF Sheet1.Range("F18")= 0 then
Msgbox Ture
Elseif Sheet1.Range("F15") > 0 And Sheet1.Range("F16") > 0 Then
Msgbox Ture
Else
Msgbox Fales
End if
--------
IF分中に確か二つの条件までしか出来なかったような・・・

投稿日時 - 2004-01-20 18:53:55

お礼

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

投稿日時 - 2004-01-25 16:34:26

ANo.1

If Sheet1.Range("F18") = 0 Or (Sheet1.Range("F15") > 0 And Sheet1.Range("F16") > 0) Then

かな。外してたらごめんなさい

投稿日時 - 2004-01-20 18:16:01

お礼

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

投稿日時 - 2004-01-25 16:33:35

-広告-
-広告-
-広告-
-広告-