【VBA用語】ByVal(値渡し)とは?

ByVal(値渡し)は、関数に引数を渡すときに、変数そのものを渡すのではなく、変数の値のみを渡すときに使うキーワードです。

使い方

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

Sub Test1()

    Dim A As Long

    A = 10

    Call Test2(A)

    Range("A1") = A

End Sub

Sub Test2(ByVal B As Long)

    B = B * 10

End Sub

メモ

使い方にあるプログラムの場合、「Test1」は変数Aを渡すのではなく、10の値のみを「Test2」に渡しています。

そのため「Test1」の変数Aは10が代入されたまま処理が進み、セルA1には「10」が入力されます。

学び方

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

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