Excel VBA

In Excel VBA, “ByVal” means giving a copy of your data so the other person can change it without touching your original.

ByVal

ByVal は、Excel VBAで「変数をそのままコピーして渡す」ためのキーワードです。

イメージすると、友だちにプリントのコピーを渡す感じです。コピーを渡された友だちは、好きに書き込みしても構いませんが、あなたが持っている元のプリントには一切影響がありません。

もし ByVal を付けずに変数を渡すと、「コピー」ではなく「元のプリントそのもの」を相手に渡すイメージになります。その場合、相手が書き換えると自分のプリントも変わってしまいます。

つまり、ByVal を使うと「呼び出した側のデータを守りたいとき」に便利です。逆に「相手に元のデータを直接いじってもらいたいとき」には ByRef を使います。