• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAでif文にorを使う場合の仕様)

VBAでif文にorを使う場合の仕様

このQ&Aのポイント
  • VBAのif文でorを使用する際の仕様について解説します。
  • 条件式に`Or`を使用する場合、正しく動作しない可能性があります。
  • `If aaa = 0 Or 1 Then`とした場合、プログラムでは`1`が代入されます。

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

  • ベストアンサー
  • ok-kaneto
  • ベストアンサー率39% (1798/4531)
回答No.1

>If aaa = 0 Or 1 Then orの両端の評価をします。 ifとは、thenまでの値により分岐する文です。 値はブール型として真(True)と偽(False)により分岐しますが、実はブール型は http://msdn.microsoft.com/ja-jp/library/wts33hb3.aspx 0 は偽(False)、それ以外は真(True)と書くこともできます。 >aaa = 0 は比較演算子でFalseを返しますが、 >1 は1を返します。言い換えれば0以外なので真(True)です。 Orの条件の一方を真(True)とするならaaaの値にかかわらず真(True)です。 なのでcccには1が代入されます。

その他の回答 (1)

回答No.2

if 式1 or 式2 then と書けば、見えてくると思いますよ。さすれば、 式1は、 aaa=0 で 式2は、 1 だと言うことが判ります。 式1が成立するのは、 aaa の値が 0 の場合のみ。 式2が成立するのは、常にです。なぜなら、式が1だからです。 イミディエイトウインドウで、1が何を意味するのかを調べて表示している画像を添付しています。そこには、 ?CBool(1) True つまり、1と書いた式は、常に真であるということです。 以上で、理解してもらえたかな。