ByVal 省略可能です。その引数が、値渡しで渡されることを示します。

ByRef 省略可能です。その引数が、参照渡しで渡されることを示します。

Visual Basic では、既定値は ByRef です。

---------------------------------

値渡し

プロシージャに引数として変数を渡す方法の 1 つ。値渡し (値による引き渡し)
で変数をプロシージャに渡すと、元の変数のコピーが作成され、呼び出されたプロシージャに渡されます。したがって、呼び出されたプロシージャ内で渡された
変数の値を変更しても、呼び出し側のプロシージャが参照する元の変数の値は変更されません。

---------------------------------

参照渡し

プロシージャに引数として変数を渡す方法の 1 つ。参照渡し (参照による引き渡し)
で変数をプロシージャに渡すと、その変数の内容は、呼び出されたプロシージャ内で変更することができます。参照渡しでは、呼び出されたプロシージャ内で
は、渡された変数のメモリ内の格納場所に対して、直接操作を行います。したがって、呼び出されたプロシージャ内で渡された変数の値を変更すると、呼び出し
側のプロシージャで参照する元の変数の値も変更されます。

おすすめの記事