ByVal と ByRefの違いは、参照渡しと値渡しの違いを


みえ  2003-05-09 15:05:32  No: 107048  IP: [192.*.*.*]

Byval(値渡し)とByRef(参照渡し)の違いをぜひ教えってください。
あと、VBの標準EXEとActiveX.DLLなどの違いも、もしよければぜひ教えってください。

編集 削除
nanashi  2003-05-09 15:21:13  No: 107049  IP: [192.*.*.*]

ByValで受け取った引数はプロシージャ内で変更してもCall元には何も影響は出ませんが、
ByRefで受け取った引数をプロシージャ内で変更するとCall元の値も変更されます。

例えば呼出元が

    Call Sub_Test(A)

となっていて、プロシージャが

    Public Sub Sub_Test(ByVal sData As String)
       sData = "Test"
    End Sub

の時はCall元のAの値は変わりませんが、もしプロシージャが

    Public Sub Sub_Test(ByRef sData As String)
       sData = "Test"
    End Sub

となっていたら Call元のAの値は「Test」という文字列に変更されます。

編集 削除