ForループでSubルーチン処理をする際、
以下のように書くこともできますが、
For j As Integer = 1 To 1000
Call Test(j)
Next j
Sub Test(j%)
End Sub
Call Test(j)のところを
Call Test(j%)としても実行することができます。
今までどちらでも同じだと思っていたのですが、
Sub Test(j%)
の中でエラーが頻発したので、
Call Test(j%)
と書いていたところを
Call Test(j)
に修正するとエラーが出なくなりました。
%を付けるとどういう処理になっていますか?
'Option Strict On 'Option Strict Off Module Module1 Sub Main() Dim v1 As Integer = 123 Dim v2 As Integer = 456 Call ByRefTest(v1%) '変数を渡す(ByRef 動作を期待) Call ByRefTest((v2%)) '式を渡す(ByVal 相当の結果) Call MsgBox(v1) Call MsgBox(v2) End Sub Sub ByRefTest(ByRef x As Long) x = 987 End Sub End Module