平成25年度 春期
高度情報技術者試験問題と解答
問7
メインプログラムを実行した後、メインプログラムの
変数の値は幾つになるか。ここで、仮引数
値呼出し (call by value) 、仮引数は参照呼出し
(call by reference) であるとする。

 メインプログラム
   =2;
   =2;
   add();

 手続きadd(
   
   
   return;

      ┌──┬──┐
      │ X │ Y │
    ┌─┼──┼──┤
    │ア│ 2 │ 4 │
    ├─┼──┼──┤
    │イ│ 2 │ 6 │
    ├─┼──┼──┤
    │ウ│ 4 │ 2 │
    ├─┼──┼──┤
    │エ│ 4 │ 6 │
    └─┴──┴──┘



【正解】 イ

値呼び出しは引数(変数)の値をコピーして渡す渡し方。
サブ関数の中で引数がどのような値に変化しても、呼び出した
元プログラムの引数の値は変らない。

参照呼出しは引数(変数)の値を共有する渡し方。 (アドレス渡し)
サブ関数の中で引数の値が変化したら、呼び出した元プログラムの
引数の値にも反映される。

これを踏まえて、プログラムを順に追いかける。
  
=2;       ・・・=2、=0
  
=2;       ・・・=2、=2
  add(
);   
     
  ・・・=4、=2
     
  ・・・=4、=6
     return;
終了時点では  
=2、 =6となる。

EXCEL VBAのご相談なら ファーストマクロ 



問6 目次 問8
ファーストマクロ TOPページ