Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


4841 / 76735 ←次へ | 前へ→

【77509】呼び出し側で引数の渡し方を決めたい理由
発言  ichinose  - 15/10/17(土) 19:42 -

引用なし
パスワード
   もう何年もやっていないので はっきりした記憶ではないですが、
Fortranは、このパラメータ渡しが参照渡しでした。

つまり、値渡しという概念がありませんでした。



call aaa(val(b))

と変数bをVal関数(ここがうろ覚え)で囲むことで値渡しで渡すことができました。


つまり、呼び出す側がパラメータの渡し方を指定していたのです。

参照渡しだけの仕様ですから、呼び出し先でパラメータがどのように使われるのか
心配だったのでしょうかねえ?

値を壊されたては、堪らない ということで値渡しの選択が出来たのでしょうか?


こんなことを考えていたら、VBAだって、一部の例外はありますが、

Option Explicit
Sub test()
  Dim a As Long
  Dim ans As Long
  a = 5
  足し算2を足す a, ans
  MsgBox ans
  a = 7
  足し算2を足す a, (ans)
  MsgBox ans
End Sub
'===========================================================
Sub 足し算2を足す(ByRef 数 As Long, ByRef 答え As Long)
  答え = 数 + 2
End Sub


このように呼び出されるプロシジャーでは、引数を参照渡しにして、

呼び出す側で (a) や a  という記述で

値渡しと 参照渡しを使い分けることができます。


これでいくつも実験してみて、

パラメータ渡しがどちらがよいか試してみては いかがですか?
0 hits

【77479】参照渡しと値渡し Nobu10 15/10/16(金) 2:05 質問[未読]
【77480】Re:参照渡しと値渡し β 15/10/16(金) 2:22 発言[未読]
【77481】Re:参照渡しと値渡し β 15/10/16(金) 2:47 発言[未読]
【77482】Re:参照渡しと値渡し Nobu10 15/10/16(金) 5:33 発言[未読]
【77484】Re:参照渡しと値渡し β 15/10/16(金) 8:08 発言[未読]
【77497】Re:参照渡しと値渡し Nobu10 15/10/16(金) 17:10 お礼[未読]
【77502】Re:参照渡しと値渡し ichinose 15/10/16(金) 18:42 発言[未読]
【77509】呼び出し側で引数の渡し方を決めたい理由 ichinose 15/10/17(土) 19:42 発言[未読]
【77510】Re:呼び出し側で引数の渡し方を決めたい理由 β 15/10/17(土) 19:55 発言[未読]
【77511】Re:呼び出し側で引数の渡し方を決めたい理由 ichinose 15/10/17(土) 21:41 発言[未読]
【77503】Re:参照渡しと値渡し cai 15/10/16(金) 22:44 発言[未読]
【77483】Re:参照渡しと値渡し ichinose 15/10/16(金) 5:33 発言[未読]
【77501】Re:参照渡しと値渡し Nobu10 15/10/16(金) 18:27 お礼[未読]
【77505】Re:参照渡しと値渡し γ 15/10/17(土) 12:50 発言[未読]
【77512】Re:参照渡しと値渡し Nobu10 15/10/18(日) 0:01 お礼[未読]
【77515】Re:参照渡しと値渡し β 15/10/18(日) 6:27 発言[未読]
【77516】Re:参照渡しと値渡し Nobu10 15/10/18(日) 7:19 お礼[未読]
【77517】Re:参照渡しと値渡し γ 15/10/18(日) 8:59 発言[未読]

4841 / 76735 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free