>>78
> 条件式がTrue/Falseでない場合だ。
条件式がTrue/Falseでない場合に問題になるという意味は、
a = 1
b = 2
If a Then Debug.Print "表示される"
If b Then Debug.Print "表示される"
If a And b Then Debug.Print "表示されない"
If a = 1 And b = 2 Then Debug.Print "表示される"
ということ。
「a = 1」といった比較の式は結果としてTrue/Falseを返すのでOK。

70で50が言っている
> VB が論理演算をビット演算子でやることにあるとは思う。
の通り。

>Foo() が Integer を返すように作っておいて、Foo()
>の作成を C 厨に任せたら、True の時に 1 を返すように作る可能性大だよ。
1を返すように作ったんなら、
>で、戻った所に If Foo() = True Then ... ああ恐ろしや...。
Trueと比較してるのが単なる間違いだし、
Trueと比較したいなら、関数Fooの戻り値がbooleanでないのが間違いなだけでは?

戻り値Integerの1だとして、
If Foo() Then
と書いてたまたま問題なく動いても、それはこの関数単独で条件になっているから
たまたま動いているだけで、余計に怖いよ。