引数の参照渡し・値渡し( ByRef, ByVal )
引数の「参照渡し」と「値渡し」
「参照渡し」とはプロシージャに引数として変数を渡す方法の1つで、この場合、変数が格納されたアドレスを渡します。このため、呼び出されたプロシージャ内で渡された変数の値を変更すると、呼び出し元の変数の値も変更されてしまいます。
一方、「値渡し」もプロシージャに引数として変数を渡す方法の1つですが、こちらは、変数のコピーを渡します。したがって、呼び出されたプロシージャ内で渡された変数の値を変更しても呼び出し元の変数の値は変更されません。
< 参照渡し >
Sub name ( ByRef varname As varname_type )
< 値渡し >
Sub name ( ByVal varname As varname_type )
【項目の説明】
- name ・・・ 定義するプロシージャ(Sub プロシージャ・Function プロシージャなど)の名前
- varname ・・・ プロシージャを呼び出したときに引き渡す引数を指定します。複数指定する場合はカンマ(,)で区切ります。
- varname_type ・・・ 引数 varname のデータ型を指定します。省略すると引数 varname は、バリアント型(Variant)となります。
「参照渡し」にしたい時は、ByRef キーワードを、「値渡し」にしたい時は、ByVal キーワードを引数 varname の前につけますが、これらのキーワードを省略した場合は、「参照渡し」となります。
「ByRef キーワード」「ByVal キーワード」の使用例
関連記事
-
-
条件分岐 If文(If…Then…Else ステートメント)
If…Then…Else ステートメントの使い方 【構文 …
-
-
繰り返し処理(For Each…Next ステートメント)
For Each…Next ステートメントの使い方 【構文】 For …
-
-
配列が引数のプロシージャを作成する
配列が引数のプロシージャを作成する 【構文】 { Sub | Function …
-
-
省略可能な引数・デフォルト値を設定( Optional キーワード )
Optional キーワード Optional キーワードを使用するとプロシージ …
-
-
変数やプロシージャのスコープ(適用範囲)
変数やプロシージャのスコープ(適用範囲) 【構文:変数の宣言】 { Dim | …
-
-
引数を可変にする( ParamArray )
ParamArray キーワード ParamArray キーワードを使用すると任 …
-
-
With ステートメントを使う
With ステートメントを使う With ステートメントを使うことで、1度指定し …
-
-
条件分岐(Select Case ステートメント)
Select Case ステートメントの使い方 【構文】 Select Case …
-
-
繰り返し処理(While…Wend ステートメント)
While…Wend ステートメントの使い方 【構文】 While …
-
-
プロシージャを呼び出す(Call ステートメント)
プロシージャを呼び出す プロシージャ内から、別のプロシージャを呼び出すには、Ca …