Excel VBA | ByVal(値渡し)

VBA
スポンサーリンク

要点まとめ

Excel VBAでは、プロシージャ(Sub)を呼び出すときに「引数」を渡すことで、処理を柔軟に変えられることが解説されています。固定値だけでなく、呼び出し元から値を渡す仕組みを理解すると、同じ処理を色々な場面で使い回せます。


1. 引数を渡さない場合

  • 例:warikireCheck の中で num = 10 と固定している。
  • この場合、常に「10が2で割り切れるかどうか」しか判定できない。
  • 柔軟性がない

2. 引数を渡す場合

  • 呼び出し側で Call warikireCheck(10) のように値を指定できる。
  • 受け取る側では Sub warikireCheck(ByVal num As Integer) と書いて、num に値が入る。
  • これで「10だけでなく、任意の数値が2で割り切れるか」を判定できる。
  • 再利用性が高まる

3. ByVal の意味

  • ByVal は「値渡し」を意味する。
  • 値渡しでは、呼び出し元の変数は影響を受けない
  • 例:文字列を渡して呼び出し先で加工しても、呼び出し元の変数は変わらない。
  • 安心して値を渡せる

4. データ型の一致が必要

  • 呼び出し側で渡す値の型と、受け取る側の引数の型は一致させる必要がある。
  • 例:数値型(Integer)を渡すなら、受け取る側もInteger型。
  • 型が違うとエラーになる。

5. 文字列やオブジェクトも渡せる

  • 数値だけでなく、文字列やオブジェクトも引数として渡せる。
  • 例:setCellValue(ByVal str As String) に文字列を渡すと、セルに文字列を書き込む処理ができる。

初心者へのアドバイス

  • 「引数を渡す」=プロシージャに入力を与えることと考えると分かりやすい。
  • 料理のレシピに「材料」を渡すようなイメージ。材料が違えば結果も変わる。
  • 固定値ではなく引数を使うことで、同じコードを色々な場面で使えるようになる。
VBA
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました