|
おはようございます。
私の拙い記述でもある程度のご理解は、して頂いたと思うのですが・・・、
>実行時に、エラーとするか、無視するか、
>VBAの仕様ということですね。^^
実行時にエラーとすること等できない仕様になっていることが
以下のコードがエラーにならないことでご理解頂けると思います。
Sub test()
Dim g0 As Long
For g0 = 1 To 10
If g0 >= 6 Then
Dim a As String
End If
a = a & "1"
Next
MsgBox a
End Sub
上記コードだと、
g0が6以上なって、Dim宣言ステーとメンとを実行している というように
みえますが、そうだとすると、エラーになりますが、実際にはエラーとは
ならず、aは 1111111111 と表示されます。
私たちが記述した --->コンパイル--------->中間コード--------------------
VBAコード 文法チェックと この時点で
中間コード作成 変数aがローカルに
作成するコードが作成
--------------------->インタプリタで実行
プロシジャー実行時の最初で
変数aの領域は認知
よって、上記のtestが正常に作動しているのだと思われます。
|
|