• 締切済み

VBA if文の作法

if a=1 then b=1 end if を if a=1 then b=1 と書けますよね。 しかし、以下のような書き方だとa=1がFALSEでもその次のif b=1 then c=1の判定をしに行きます。なぜこの書き方がいけないのでしょうか? if a=1 then if b=1 then c=1 end if

みんなの回答

noname#231195
noname#231195
回答No.3

手元のVBA7.1で試してみましたが、a=1がFALSEならその次のif b=1 then c=1の判定をしには行きませんよ。 aの値が本当に1になっているのではないですか。 VBAの動作そのものを確かめるなら、a=1の代わりにFALSEとして走らせてみるといいです。

tanakanono
質問者

お礼

確かに問題ないです。今手元にコードがないので明日再確認してみます。 if false then でもif内を判定しに行ったのは確認しているので、問題のコードをもとに問題個所を抽出して再質問するようにします。

  • f272
  • ベストアンサー率46% (8477/18146)
回答No.2

その書き方でいけないことはありません。なにか勘違いしているのでは?

tanakanono
質問者

お礼

確かに問題ないです。今手元にコードがないので明日再確認してみます。

  • dogs_cats
  • ベストアンサー率38% (278/717)
回答No.1

記載されたコードで問題無いと思いますけど、下記でa=0だとmsgboxを表示しません。全てのコードの記載が無いと判断出来ないでしょうね。 Sub test() a = 0 b = 1 If a = 1 Then If b = 1 Then c = 1 MsgBox c End If End Sub

tanakanono
質問者

お礼

確かに問題ないです。今手元にコードがないので明日再確認してみます。

関連するQ&A