
以下コードは、参照渡しorモジュールレベル変数にて記述したコードです
どちらも、同じように動きます
●●●では、どちらが、一般的には使われるのでしょうか?●●●
時分は、モジュールレベル変数の方が 分かりやすいと思いました
【参照渡しコード】
Sub 別ブックへ転記()
Dim filpath1 As String
Dim wb1 As Workbook
Dim ws1 As Worksheet
filepath1 = ThisWorkbook.Worksheets("Sheet1").Cells(141, 1)
Set wb1 = Workbooks.Open(filepath1)
Set ws1 = wb1.Worksheets("Sheet1")
Call あいうえお(wb1, ws1)
End Sub
Sub あいうえお(ByRef a As Workbook, b As Worksheet)
b.Cells(1, 1) = "あいうえお"
End Sub
【モジュールレベル変数 コード】
Dim filpath1 As String
Dim wb1 As Workbook
Dim ws1 As Worksheet
Sub 別ブックへ転記()
filepath1 = ThisWorkbook.Worksheets("Sheet1").Cells(141, 1)
Set wb1 = Workbooks.Open(filepath1)
Set ws1 = wb1.Worksheets("Sheet1")
Dim buf As String
Call あいうえお
End Sub
Sub あいうえお()
ws1.Cells(1, 1) = "あいうえお"
End Sub
No.2ベストアンサー
- 回答日時:
こんばんは
以下の「アンチパターン」の5番目に書かれていますね。
https://qiita.com/k_maki/items/c40c0eab5af4984f0 …
ご提示の例について言えば、必要のないものも多いです。
ThisWorkbookはブック内共通なので、どこからも参照できる関係から、グローバル変数にする意味はあまりありません。
「Sub あいうえお」は二つの引数を取っていますが、実際に使用しているのは一つだけなので、二つ取る意味がありません。
仮に、両方を使うにしてもシートオブジェクトからブックの参照ができるので、シートオブジェクトだけを渡せば済むはずです。
原則は参照レベルなんですね
また、本事例では、変数は1つしか利用しないので
2つ渡す意味はないですね
ご指導ありがとうございます
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【マクロ】Call関数で呼び出した場合、共通の変数宣言は、省略できますか? 2 2025/02/09 10:17
- Visual Basic(VBA) 【マクロ】1つのマクロの中に、ブック指定とシート指定が混在しても良いのですか? 2 2024/05/16 07:13
- Excel(エクセル) 【マクロ】関数をセルに入力するも、スピルしない件 1 2024/06/09 22:15
- Excel(エクセル) 【マクロ】セルに関数を入れる場合、列を追加した後に実行すると【文字列】になってしまう 1 2024/06/09 16:41
- Excel(エクセル) 【マクロ】AブックからBブックへデータコピーの後、Bブックに上書きされないようにするには? 3 2024/12/22 11:53
- Excel(エクセル) 3つのマクロを連続実行の中で、1つ目のマクロ要件を満たさなかったら、マクロ2・3を実行しない為には 1 2023/10/15 13:42
- Excel(エクセル) 【マクロ】違うフォルダにあるファイルから、転記するには? 4 2023/09/26 19:49
- Visual Basic(VBA) VBA 複数の各シートに行を追加したいです 2 2024/02/28 22:09
- Visual Basic(VBA) VBAに関して 2 2023/11/09 20:57
- Visual Basic(VBA) クリップボードに貼付している文字列が、マクロで別ブックへ転記すると、消えてしまう 1 2023/10/15 13:36
このQ&Aを見た人はこんなQ&Aも見ています
-
ショボ短歌会
ひどい短歌を詠んでください。
-
字面がカッコいい英単語
あなたが思う「字面がカッコいい英単語」を教えてください。
-
歩いた自慢大会
「めちゃくちゃ歩いたエピソード」を教えてください。
-
一番好きなみそ汁の具材は?
みんなで大好きなみそ汁の具材について語り合おうよっ!
-
この人頭いいなと思ったエピソード
一緒にいたときに「この人頭いいな」と思ったエピソードを教えてください
-
【マクロ】Call関数で呼び出した場合、共通の変数宣言は、省略できますか?
Excel(エクセル)
-
ユーザーマクロ作成
Excel(エクセル)
-
質問58753 このコードでうまく動作しません。どうしたら良いですか Private Sub Wor
Visual Basic(VBA)
-
-
4
Excelの計算が合いません。 諸事情で会計の簡素な購入・販売諸元表を作っているのですが、一つの項目
Excel(エクセル)
-
5
システムファイルについて
Excel(エクセル)
-
6
VBAの「To」という語句について
Visual Basic(VBA)
-
7
【マクロ】データ移動について代替案(コード)or助言を下さい
Excel(エクセル)
-
8
【マクロ】データ移動について代替案(コード)or助言を下さい
Excel(エクセル)
-
9
役所でもらった書類をエクセル化するには? 役所に申請する用紙があります。A4で表になっていて枠内に文
その他(Microsoft Office)
-
10
(マクロ)値を返す時は subでもfunctionでもどちらでも良いのでしょうか?
Excel(エクセル)
-
11
excelVBAについて。
Excel(エクセル)
-
12
ファイル名の変更
Excel(エクセル)
-
13
エクスプローラーで見ることはできますか
Excel(エクセル)
-
14
Excelで〇のついたものを抽出したい
その他(Microsoft Office)
-
15
自動的に日付入力 応用
Excel(エクセル)
-
16
Excelの条件付書式について教えてください。
Excel(エクセル)
-
17
Excelについて教えてください。
Excel(エクセル)
-
18
別のシートの指定列の最終行を返す関数の式を教えて下さい。
Excel(エクセル)
-
19
以下のプログラムの実行結果はどうなると思いますか? その理由も教えてください。
Visual Basic(VBA)
-
20
Excel関数の解決方法
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・昔のあなたへのアドバイス
- ・字面がカッコいい英単語
- ・許せない心理テスト
- ・歩いた自慢大会
- ・「I love you」 をかっこよく翻訳してみてください
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・はじめての旅行はどこに行きましたか?
- ・準・究極の選択
- ・この人頭いいなと思ったエピソード
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルの難問。「コピペする...
-
重複しない値を抽出したい
-
名前の間のスペースをそろえる...
-
エクセルでラベルシールを印刷...
-
【マクロ 画像あり】Exact関数...
-
【マクロ 画像あり】セル範囲の...
-
至急お願いします!エクセルの...
-
Excelの数式?について質問です...
-
【オートフィルター】3つのシ...
-
【マクロ】条件付き書式設定を...
-
エクセルの数式について教えて...
-
エクセルで教えてください。 例...
-
VBA_日時のソート
-
ミリ秒を時間へ変更するには? ...
-
空白のはずがSUBTOTAL関数でカ...
-
スプレッドシート(Excelでも良...
-
【マクロ】上のデータに下のデ...
-
エクセル 月間シフト表で曜日ご...
-
テーブルの合計、エラーをはぶ...
-
エクセルで、一部のセルだけ固...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルの設定、下へスクロー...
-
別のシートの指定列の最終行を...
-
【マクロ】シート追加時に同じ...
-
Excelファイルを開くと私だけVA...
-
Excelの関数を教えて下さい。
-
マクロを実行すると、セル範囲...
-
エクセルの設定、特定の列以降...
-
Excelの条件付書式について教え...
-
Excelで作成した出欠表から日付...
-
Excelでの文字入力について
-
Excel 日付の表示が直せません...
-
Excel関数の解決方法
-
システムファイルについて
-
自動的に日付入力 応用
-
UNIQUE関数の代用
-
エクセル内に読み込んが画像の...
-
勤務外時間を出す表が作りたい
-
Excel 偶数月の15日(土日祝...
-
【マクロ】Call関数で呼び出し...
-
【マクロ】1回目の実行後、2...
おすすめ情報