Excel VBA質問箱 IV

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

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


4848 / 76735 ←次へ | 前へ→

【77502】Re:参照渡しと値渡し
発言  ichinose  - 15/10/16(金) 18:42 -

引用なし
パスワード
   質問の意図を誤解していたようです。

>プロシージャを作成する技術的なものではなく、概念的なものです。知らなくてもプロシージャ作成にはあまり関係のないことだと思っています。
いいえ、そんなことはありません。プロシジャーやパラメータの意味を深めるには
大切だと思いますよ!!

>ByRef、ByVarを書くべきところは呼出元であると思います。

これは 違います。あくまでも呼出先です。




Sub 足し算2を足す(ByVal 数 As Long, ByRef 答え As Long)
  答え = 数 + 2
End Sub


上記のコードは、指定された数字に2を足した数を 返す という機能を持ちます よね?

入力データ 数  長整数型 値渡し
出力データ 答え 長整数型 参照渡し

足し算2を足す というプロシジャーが機能を遂行できるように
パラメータの性質を決めるのが 理屈だと思いませんか?


「数」という変数は、「足し算2を足す」というプロシジャーでは、参照さえできれば
良いので 値渡しであり、 「答え」という変数は、結果を格納するので
参照渡しのパラメータにする。

「足し算2を足す」というプロシジャーの機能に沿って パラメータを決めるのですよ!!


だから、現状の文法で良いのです。


Sub test1()
  Dim a As Long
  Dim b As Long
  a = 5
  b = 1
  Call 足し算2を足す(a, b)
  MsgBox b
End Sub


Sub test2()
  Dim a As Long
  Dim b As Long
  a = 5
  b = 1
  Call 足し算2を足す(a, (b))
  MsgBox b
End Sub


因みに test2では、参照渡し が 値渡しになっているように見えますし、
結果はおなじですが、メカニズムは、若干違いますよ!!


追伸

私は、Nobu10さんの質問や投稿内容 良いと思いますよ!!
少なくとも作成依頼の投稿に比べたら断然です。
比較することすら 失礼だと思うくらいです。

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 発言[未読]

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