|
サブプロシジャーへのパラメータの渡し方には、参照渡しと値渡しがあることは
知られていることですよね!!
新規ブックのThisWorkbookのモジュールに、
'==================================================================
Option Explicit
Public ans As Long
'==================================================================
Sub main()
Dim a As Long
Dim b As Long
ans = 0
a = 2
b = 3
Call addcalc(a, b, ans)
MsgBox a & " + " & b & " = " & ans
End Sub
'==================================================================
Sub addcalc(x As Long, y As Long, z As Long)
z = x + y
End Sub
として、ThisWorkbook.mainを実行すると、
「2 + 3 = 5」と正しく足し算の答えが表示されますが、
上記のmainを
'==================================================================
Sub main()
Dim a As Long
Dim b As Long
Me.ans = 0
a = 2
b = 3
Call addcalc(a, b, Me.ans)
MsgBox a & " + " & b & " = " & Me.ans
End Sub
のように「変数ansにMeキーワードを付ける」という変更を行ってから、
mainを実行すると、
「2 + 3 = 0」と正しく足し算の答えが表示されません。
不思議ではないですか?
|
|