http://www.relief.jp/itnote/archives/vba-if-or.php
このページにも書かれてあるのですが、
Sub textss()
aaa = 2
If aaa = 0 Or 1 Then
bbb = 1
ElseIf aaa = 2 Then
bbb = 2
End If
ccc = bbb
End Sub
を実行すると
cccには2が代入されそうなのですが、実際には1が代入されてしまいます。
If aaa = 0 Or aaa = 1 Then
と入力する必要があります。
それでは、
If aaa = 0 Or 1 Then
とした時、プログラムではどういう処理がなされているのでしょうか?
No.1ベストアンサー
- 回答日時:
>If aaa = 0 Or 1 Then
orの両端の評価をします。
ifとは、thenまでの値により分岐する文です。
値はブール型として真(True)と偽(False)により分岐しますが、実はブール型は
http://msdn.microsoft.com/ja-jp/library/wts33hb3 …
0 は偽(False)、それ以外は真(True)と書くこともできます。
>aaa = 0
は比較演算子でFalseを返しますが、
>1
は1を返します。言い換えれば0以外なので真(True)です。
Orの条件の一方を真(True)とするならaaaの値にかかわらず真(True)です。
なのでcccには1が代入されます。
No.2
- 回答日時:
if 式1 or 式2 then
と書けば、見えてくると思いますよ。さすれば、
式1は、 aaa=0 で
式2は、 1
だと言うことが判ります。
式1が成立するのは、 aaa の値が 0 の場合のみ。
式2が成立するのは、常にです。なぜなら、式が1だからです。
イミディエイトウインドウで、1が何を意味するのかを調べて表示している画像を添付しています。そこには、
?CBool(1)
True
つまり、1と書いた式は、常に真であるということです。
以上で、理解してもらえたかな。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Perl perl このテキストファイルを簡単に配列に入れるには? 2 2022/04/27 20:24
- Visual Basic(VBA) VBA。複数のChangeイベントをまとめる方法 2 2022/03/31 12:03
- Visual Basic(VBA) VBA This Workbookモジュールを別ファイルにコピーする方法 1 2022/09/14 01:51
- Visual Basic(VBA) 【再々投稿】VBAのプログラムで動作しなくて困っています 8 2022/10/14 09:06
- Visual Basic(VBA) Excel-VBAでのファイルの開き方 4 2023/02/14 11:01
- Visual Basic(VBA) エクセルVBA ダブルクリックしたら色反転を指定したセルのみにしたい 2 2022/04/06 12:52
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) [Excel VBA] このコードでは行の挿入や行の消去をすると13のエラーが出てしまう。 3 2022/12/09 00:29
- Visual Basic(VBA) excel2021で実行できないマクロ。どこを直したらいいのか 2 2022/03/28 03:40
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでダブルコーテーション入り...
-
エラーの意味は? Lvalue req...
-
C言語 列挙型(enum型)変数について
-
「%」を使って、偶数か奇数かを...
-
[VBS]変数を定数に変換する方法...
-
テキストボックスの値を変数に...
-
整数xxxが大き過ぎますというエ...
-
Accessコンボボックスにレコー...
-
ExcelのVBAでをA列に第0〜19項...
-
EXCEL/VBA 変数の値をクリップ...
-
構造体からレコードセットへの代入
-
python の 連鎖代入の文法
-
変数にオフセットが付いている...
-
processing エラーで、 "cannot...
-
プログラミングで変数と関数の...
-
切り上げ
-
i++と++i ってどう違うのですか?
-
vba 最大値 条件分岐
-
インクリメント演算子の前置(+...
-
JavaScriptをURLから直接実行し...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでダブルコーテーション入り...
-
EXCEL/VBA 変数の値をクリップ...
-
C言語 列挙型(enum型)変数について
-
テキストボックスの値を変数に...
-
Variant型で宣言してるのにEmpt...
-
[VBS]変数を定数に変換する方法...
-
python の 連鎖代入の文法
-
エラーの意味は? Lvalue req...
-
jsp~jspにhiddenを使って変数...
-
processing エラーで、 "cannot...
-
整数xxxが大き過ぎますというエ...
-
プログラミングで変数と関数の...
-
構造体からレコードセットへの代入
-
コマンドプロンプト バッチ|結...
-
stdpicture型の変数に、、
-
無名関数のメリットがよくわか...
-
i++と++i ってどう違うのですか?
-
DataTableの値を変数に代入したい
-
Accessコンボボックスにレコー...
-
VBA 1行で複数の代入を行った...
おすすめ情報