(私は単純な例ではなく、私の元のコードではなく、関連を使用します)列挙条件の挙動:enum_Var = STR1またはSTR2
私はOr
で、列挙型にIf
声明を作りたかったです。好奇心が、なぜない、まあ
(ドロップダウン選択、下記参照)If current = Apple Or Peach Then
:エクセルVBAエディタは、構文のこの種を使用することを示唆しました。 行動は1が期待しなかったことをテストしている間、私は考え出し:
Public Enum Fruit
Apple
Peach
Banana
End Enum
Public Sub pick()
Dim current As Fruit
current = Banana
If current = Apple Or Peach Then
'//The condition is True
MsgBox "Toc"
End If
End Sub
は確かに、このコードでは、If
はTrueです。私は理由を知らないわけではない:私はPeach
が整数と評価され、0とは違うと思う、それはtrue
だと思う。証明、Enum Fruit
宣言の場合、Peach
は強制的に0になり、それはFalse
です。
Public Enum Fruit
Apple
Peach = 0
Banana
End Enum
Public Sub pick()
Dim current As Fruit
current = Banana
If current = Apple Or Peach Then
'//The condition is False this time
MsgBox "Toc"
End If
End Sub
私の質問(ええ、不可欠ではない、理解のために):なぜ地獄は、エディタは、私は、上のスクリーンショットのように、このドロップダウン・リストを示唆していますか?そこに何かが隠されているような気がします...
バレンタイン、 ありがとうございました。
EDIT (それはIf current = Apple Or current = Peach Then
明らかに静かであるように)私は、この条件を記述するための方法を捜しているわけではありません。私の質問は、ドロップダウンリストの提案に関連しています。
書き込み状態であれば – Unknown
@RamAnuragiうん、そのために問題なし「現在=アップルまたは現在=ピーチ続いた場合」、「問題は」の詳細であるAS-:私のコードは、おそらく私の説明よりも理にかなっていますドロップダウンリストの提案でエディタの動作 –
Enumがビットマスクとしてセットアップされている場合は、ANDとORを一緒に使用できます。これは、VB6の大きなアプリケーション開発で頻繁に行われました。そのため、IDEがそれを提案しています。 – RBarryYoung