【VBA用語】ByRef(参照渡し)とは?

ByRef(参照渡し)は、関数に引数を渡すときに、変数そのものを渡すときに使うキーワードです。

使い方

次のプログラムは、マクロ「Test2」に変数そのものを渡すプログラムです。

Sub Test1()

    Dim A As Long

    A = 10

    Call Test2(A)

    Range("A1") = A

End Sub

Sub Test2(ByRef B As Long)

    B = B * 10

End Sub

メモ

使い方にあるプログラムの場合、「Test1」は10の値が代入された変数Aを「Test2」に渡しています。

そのため「Test2」で変数Aに入った値は10倍になり、セルA1には「100」が入力されます。

受け取る引数の定義に「ByVal」「ByRef」どちらのキーワードも付けない場合、「ByRef」を付けた場合と同じく、参照渡しになります。

学び方

ByRef(参照渡し)は、VBAの資格「Excel VBA スタンダード」で学ぶことができます。

「Excel VBA スタンダード」の問題集は、以下よりお試しください。
Excel VBA スタンダード 用語問題集

前の記事
【VBA用語】ByVal(値渡し)とは?