トップ回答者
ByRefの使い方

質問
-
VB6、またはVB5でも、次の様な結果になるんでしょうか?
実行環境がないので教えてください。
Sub Button1_Click()
Dim i1 As Integer
Dim i2 As Integer
Dim i3 As Integer
Dim i4 As Integer
Dim i5 As Integer
Dim i6 As Integer
i1 = 0
i2 = 0
i3 = 0
i4 = 0
i5 = 0
i6 = 0
mysub i1 '(1)
mysub (i2) '(2)
Call mysub(i3) '(3)
myfunc i4 '(4)
myfunc (i5) '(5)
Call myfunc(i6) '(6)
End SubSub mysub(ByRef arg As Integer)
arg = 1
End SubFunction myfunc(ByRef arg As Integer)
arg = 1
End Function値「1」になる:i1, i3, i4, i6
値「0」のまま:i2, i5
i2とi5は何故「1」にならないのでしょう?
これって何の法則です?
ご教授願います。
ちなみに、こちらは
WinXP
Excel2000 VBA
での結果です。
回答
-
こんにちは。
こういうコードで試すと一目瞭然であります。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=28458&forum=7&start=21
すべての返信
-
こんにちは。
こういうコードで試すと一目瞭然であります。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=28458&forum=7&start=21