- ベストアンサー
これは参照渡し・値渡ししてる事になりますか?
Dim a As String Sub マクロ1() a = "test" Call マクロ2 a = Empty End Sub Sub マクロ2() MsgBox a End Sub これは参照渡し・値渡ししてる事になりますか? ByRefやByValを使わない限り、 参照渡しまたは値渡ししてるとは言えないのでしょうか? ご回答よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
え? 何処で渡しているの? 何も渡しておらず、単にマクロ2側が特定の変数を参照しているだけ マクロ2はどんな時でも同一の変数を参照しているだけ 引数で渡すという事は、渡す側が任意の変数又はイミディエート値を渡してもサブ関数側で同じように処理してくれる事を意味する この例で言えば、マクロ1側が変数aでは都合が悪い場合には、マクロ3を新たに準備しなければ成らず非効率
その他の回答 (1)
- notnot
- ベストアンサー率47% (4900/10361)
回答No.1
サブルーチン呼び出し時に何も渡していないので、参照渡しでも値渡しでもありません。 強いて言うなら、「グローバル変数を使っている」ですね。
質問者
お礼
ご回答ありがとうございました。
お礼
ご回答ありがとうございました。