参照渡しをする時は、渡される側は違う変数を使うべきなのでしょうか?
VBAのお勉強をしているのですが
Sub test1()
Dim mystr As String
mystr = "a"
Call test2(mystr)
Call test3(mystr)
End Sub
Sub test2(ByRef mystr As String)
MsgBox mystr
End Sub
Sub test3(ByRef mystr2 As String)
MsgBox mystr2
End Sub
この場合、test2とtest3ではどちらを使ったほうがいいのでしょうか?
test3は、mystr2 というmystrとは違う変数を使っていますが、
test2は、test1のmystrと同じ変数を使っています。
test1と同じ変数を使おうが違う変数を使おうが
どちらにしろ
(ByRef 変数名 As String)
で宣言するから、変わらないのでしょうか?
No.2ベストアンサー
- 回答日時:
>test1と同じ変数を使おうが違う変数を使おうが
>どちらにしろ
>(ByRef 変数名 As String)
>で宣言するから、変わらないのでしょうか?
実際に、コーディングをする時に、読みやすいコードに書くのは当たり前のことです。
例え、同じものであっても、サブルーチンなどの場合に、引数で違った名前でつけたら読みにくくなるはずです。ただし、Public キーワードをつけて、他でも使えるものとしプロシージャの引数の名称を一般名(データ型などを類推できるようにする)にするなら、また話は別です。今回は、呼び出しだけに使うものですから、常識的には、引数は変数名と同じにします。
理屈でなく、mystr は、同じものなのですから、私なら表記を同じにします。
Call test2(mystr) →Sub test2(ByRef mystr As String)
読みやすさを心がけるのが一番ですね。
私自身test3のやり方は混乱するので参照渡しをする際は同じ変数を使いたいなーと思い質問しました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) excel vba 参照渡しと値渡し 2 2022/04/27 10:45
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) VBAでファイル名を指定して保存するとき 4 2023/03/26 21:55
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Visual Basic(VBA) マクロについて教えてください。 4 2023/06/06 09:06
- Visual Basic(VBA) オブジェクトが見つかりません 1 2023/06/24 19:43
- Visual Basic(VBA) VBAが止まります。 3 2022/08/31 14:09
- Visual Basic(VBA) VBAでWorkbook.addの使い方 3 2023/02/01 11:58
- Visual Basic(VBA) あるフォルダーのファイルを違う親フォルダーのサブフォルダーに移したい 11 2023/02/15 19:00
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
片方のテーブルに無いデータを...
-
BULKINSERTのWITHオプションに...
-
テーブルの結合(GROUP BY句の制...
-
SQLServerでtime型への変換
-
日付型項目のNULLについて(Pos...
-
差し込み後、元データを変更し...
-
SQLで特定の項目の重複のみを排...
-
フィルターかけた後、重複を除...
-
エクセルで最後の文字だけ置き...
-
for whichの使い方
-
SELECT 文 GROUP での1件目を...
-
外部参照してるキーを主キーに...
-
重複していないレコードの抽出...
-
EXISTSを使ったDELETE文
-
SQL Date型の列から年月だけを...
-
VIEWの元のテーブルのindexって...
-
INSERT文でフィールドの1つだ...
-
insertを高速化させたい
-
2つのテーブルを結合して最大値...
-
1日に1人がこなせるプログラム...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
BULKINSERTのWITHオプションに...
-
SQLServerでtime型への変換
-
日付型項目のNULLについて(Pos...
-
Access 2000 サブクエリとJOIN
-
片方のテーブルに無いデータを...
-
VBA 100億になると#が自動...
-
【SQL】指定期間の合計、MAX...
-
sql express内部結合して重複行...
-
データ突合のよい方法を教えて...
-
指定値を否定した条件で、NULL...
-
オークションでパソコンを売る場合
-
差分のSQL
-
差し込み後、元データを変更し...
-
SELECT 文 GROUP での1件目を...
-
フィルターかけた後、重複を除...
-
エクセルで最後の文字だけ置き...
-
for whichの使い方
-
「no+比較級」の2つの異なる...
-
外部参照してるキーを主キーに...
-
SQLで特定の項目の重複のみを排...
おすすめ情報