私はオブジェクト指向の背景から来ています。なぜ、このコードの断片に "テスト"(引用符に気づく)が(メッセージボックス内に)表示されますか?私は論理テストを期待しています: 'If Test = "True"' Falseを返すには、バリアントに文字列ではなくブール値が含まれているためです。したがって、私は、メッセージボックスが表示されるように期待していないだろうが、それはありません:VB6バリアントタイプ
Dim Test As Variant
Test = True
If Test = "True" Then //line 5
MsgBox ("Test")
End If
あなたのコードをしようとする使用する必要がありますが、文字列を示しているので、テストは、メッセージボックスに表示されている単語がある理由「テスト」あなたのメッセージボックスに
コンパイラが知る限り論理的なyes/noを "foobar"と比較してください。どのようにあなたはそれがうまくいくのですか?コンパイラは、文字列をブール値に変換して比較するコードを生成する必要がありますか?またはブール値を文字列に変換するコードを生成する必要がありますか? "True"を "foobar"に置き換えると、プログラムはクラッシュしません。それを試してみてください。今あなたは知っている。 –