概要
・引数の値が書き換え可能かどうか
・参照渡し(ByRef) ⇒ 書換可
・値渡し(ByVal) ⇒ 書換不可
・省略時は参照渡し(ByRef) で書換可
参照渡し(ByRef)
Sub Test() Dim hoge As String: hoge = "初期値" Call TestByRef(hoge) Debug.Print hoge '実行結果:変更しました End Sub Sub TestByRef(ByRef hoge As String) '(hoge As String)に省略可 hoge = "変更しました" End Sub
値渡し(ByVal)
Sub Test() Dim hoge As String: hoge = "初期値" Call TestByRef(hoge) Debug.Print hoge '実行結果:初期値 End Sub Sub TestByRef(ByVal hoge As String) hoge = "変更しました" End Sub