以下のスクリプトは変数sを宣言せずに代入しているために、エラーになります。
Option Explicit
s = "hoge"
しかし、以下のスクリプトはエラーになりそうですが、エラーになりません。
2行目の時点ではsの宣言が行われていないにも関わらず、エラーなく処理を行うことができます。
Option Explicit
s = "hoge"
Dim s
実は、VBScriptにはJavaScriptと同様に変数の巻き上げを行う仕様があります。
そのため、以下のスクリプトと等価になります。
Option Explicit
Dim s
s = "hoge"
JavaScriptと同様に意図しない挙動につながることが多いため、変数の巻き上げは起こさないようにコーディングをするように心がける必要があります。
具体的には、変数宣言はスコープの先頭部分で行うようにするのが無難です。