異なる型の変数の比較演算

文字列型変数と数値型変数を比較すると、特定の状況下で1を返すみたい。とりあえず以下にサンプル。

選択1 = テスト

If 選択1 = 0 Then
  talk
  おや?
  end
Endif

SRCはプログラミング初心者でも簡単にシナリオを作れるように、C言語などと違って(僕は今のところC言語しか知らないので、他はわからんです)、変数の宣言が必要でなかったり、変数にどんな型のデータも格納できるようになっています。
SRCのソースを覗いてみると、VBにおいても本来なら変数宣言が必要だと思われます。
そこら辺の弊害がこの不都合かと。
If文内にて比較がされる時点で、選択1には文字列型のデータが格納されています。そして、それと比較されるのが数値型のデータである0。
本来なら型の違う変数同士を比較することはできません。コンパイル時にエラーが起きます。
多分、変数に文字列型データが格納されているなら、数値型データとしての値は0。数値型データが格納されているなら、文字列型データとしての値は""(空文字)って感じで処理しているんでしょうね。
なので、文字列型データと0を=で比較すると、1が返ってくるんじゃないでしょうか。
考察については全く自信が無いですが、こんな不都合が起こるのは間違いないです。
※06/02/27 確認