次のコードは実行したとき、メッセージボックスに「40」と表示するマクロである。
空欄に入る適切な語句を解答しなさい。
Sub Exam1()
Dim B As Long
B = 20
Call ModifyValue(B)
MsgBox B
End Sub
Sub ModifyValue(【 ① 】 B As Long)
B = B * 2
End Sub
正解
【 ① 】 byref、何も指定しない
解説
【1章 プロシージャ】
本問題では参照渡しで引数を渡しています。
●プロシージャを呼び出すとき、呼び出し先のプロシージャに計算や処理に使う値(引数)を渡すことができます。
・引数を渡す場合は2種類あります。
●参照渡し・・・引数の定義にByRefを付け加える、あるいは何も指定しない。
特徴:値が共有される(その後の処理結果が呼び出し元の値に反映される。)
●値渡し・・・引数の定義にByValを付け加える。
特徴:値がコピーされる(その後の処理結果が呼び出し元の値に反映されない。渡されたそのままの値)
【コード解説】
Sub Exam1()
Dim B As Long
’ 長整数型の変数 B を宣言する。
B = 20
’ 変数 B に 20 を代入する。
’ プロシージャ ModifyValue を呼び出し、B を処理結果が反映される、参照渡しをする。
Call ModifyValue(B)
MsgBox B
’ メッセージボックスに B の値を表示する。
End Sub
Sub ModifyValue(ByRef B As Long)
B = B * 2
’ 変数 B を2倍し代入する。
End Sub
スポンサーリンク
スポンサーリンク