
標題の件、3つのサブシーじゃにて同じ宣言等を
3回、記述しています。当該記述を省略はできないでしょうか?
宣言等は同じ内容の宣言です。指定しているファイル等すべて同じです
構造は
Sub オートフィルター()で 2つのサブシーじゃをCallにて
呼び出しています。当該、2つのあサブシーじゃにて毎回
同じ宣言をしています
アドバイスや省略できる出来ないも含めてご存じの方、教えて下さい
Sub オートフィルター()
●●●同じ宣言等●●●
Call シートを別のブックにコピーする
Call 降順
End Sub
sub シートを別のブックにコピーする()
●●●同じ宣言等●●●
End Sub
sub 降順()
●●●同じ宣言等●●●
End Sub
【全部で3回、同じ記述】
Dim filepath2 As String
Dim wb2 As Workbook
Dim ws2 As Worksheet
Dim a As Date
Dim z As Date
filepath2 = ThisWorkbook.Worksheets("転記元シート").Cells(14, 1)
Set ws22 = wb2.Worksheets("過去分依頼データ")
【コード】
Sub オートフィルター()
Dim filepath2 As String
Dim wb2 As Workbook
Dim ws2 As Worksheet
Dim a As Date
Dim z As Date
filepath2 = ThisWorkbook.Worksheets("転記元シート").Cells(141, 1)
Set wb2 = Workbooks.Open(filepath2)
Set ws2 = wb2.Worksheets("Sheet1")
Call シートを別のブックにコピーする
Set ws22 = wb2.Worksheets("過去分依頼データ")
Call 降順
●●●本文省略●●●
End Sub
Sub シートを別のブックにコピーする()
Dim filepath2 As String
Dim wb2 As Workbook
Dim ws2 As Worksheet
filepath2 = ThisWorkbook.Worksheets("転記元シート").Cells(14, 1)
Set wb2 = Workbooks.Open(filepath2)
●●●本文省略●●●
End Sub
Sub 降順()
Dim filepath2 As String
Dim wb2 As Workbook
Dim ws2 As Worksheet
filepath2 = ThisWorkbook.Worksheets("転記元シート").Cells(14, 1)
Set wb2 = Workbooks.Open(filepath2)
Set ws22 = wb2.Worksheets("依頼データ")
●●●本文省略●●●
End Sub
No.2ベストアンサー
- 回答日時:
変数が3回同じ記述ということですが、その変数に設定している内容が異なります。
①filepath2 = ThisWorkbook.Worksheets("転記元シート").Cells(141, 1)
②filepath2 = ThisWorkbook.Worksheets("転記元シート").Cells(14, 1)
①はSub オートフィルター()で使用
②はSub シートを別のブックにコピーする()とSub 降順()で使用
----------------------------
③Set ws22 = wb2.Worksheets("過去分依頼データ")
④Set ws22 = wb2.Worksheets("依頼データ")
③はSub オートフィルター()で使用
④はSub 降順()で使用
本文が省略されているので、正確なことはわかりませんが、
個々のプロシージャ毎に設定されている内容が異なるので、ひとつにまとめないほうが良いと考えます。
No.1
- 回答日時:
こんにちは
どのような使い方を想定しているのかわかりませんけれど、ご提示のコードが一連の処理で、そのような呼び出し関係でしか使わないのであれば・・
毎回ブックを開く必要はないので、サブ側にシート変数等を引数で渡せば済むのではないでしょうか。
あるいは、プロシージャを分ける必要もないので、まとめてしまうという方法も考えられます。
それぞれを単独で利用する可能性があるという場合は、共通部分をまとめて、
『ブック(開いていない場合はを開いて)のシートを返す関数』
にでもしておけば、その関数を呼ぶだけですむようになると思います。
ただ、ご質問には関係ありませんけれど、セルの値をそのまま信じて、ブックオープンしてよいのかどうかは疑問に感じますけれど・・・
※ 全体像がわからないため、想像での回答になっていますので、何が適切なのかは当方にはわかりませんけれど。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
ユーザーマクロ作成
Excel(エクセル)
-
【マクロ】参照渡しとモジュールレベル変数 どっちが よく使うものですか?
Excel(エクセル)
-
VBAの「To」という語句について
Visual Basic(VBA)
-
-
4
質問58753 このコードでうまく動作しません。どうしたら良いですか Private Sub Wor
Visual Basic(VBA)
-
5
自動的に日付入力 応用
Excel(エクセル)
-
6
システムファイルについて
Excel(エクセル)
-
7
【マクロ】データ移動について代替案(コード)or助言を下さい
Excel(エクセル)
-
8
【マクロ】コードを少しでも、減らする為には
Excel(エクセル)
-
9
【マクロ】条件付き書式設定をマクロ化するには?
Excel(エクセル)
-
10
Excel関数の解決方法
Excel(エクセル)
-
11
役所でもらった書類をエクセル化するには? 役所に申請する用紙があります。A4で表になっていて枠内に文
その他(Microsoft Office)
-
12
VBA_日時のソート
Excel(エクセル)
-
13
エクセルのファイルのコピーをとりたい
Excel(エクセル)
-
14
VBA の単語の意味を教えて下さい。
Excel(エクセル)
-
15
マクロを実行すると、セル範囲に @ がついてしまう
Excel(エクセル)
-
16
Excel いい方法教えてください。
Excel(エクセル)
-
17
Excelの条件付書式について教えてください。
Excel(エクセル)
-
18
Excelでの文字入力について
Excel(エクセル)
-
19
Excelの関数を教えて下さい。
Excel(エクセル)
-
20
日付がバラバラ
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VLOOKUP FALSEのこと
-
if関数の複数条件について
-
【関数】=EXACT(a1,b1) a1とb1...
-
【マクロ】数式を入力したい。...
-
同じ名前(重複)かつ 日本 ア...
-
excel
-
エクセルシートの見出しの文字...
-
エクセルの文字数列関数と競馬...
-
エクセルでフィルターした値を...
-
表計算ソフトでの様式の呼称
-
【画像あり】【関数】指定した...
-
Dir関数のDo Whileステートメン...
-
【マクロ】実行時エラー '424':...
-
Excelに貼ったXのURLのリンク...
-
【関数】3つのセルの中で最新...
-
【マクロ】【画像あり】❶ブック...
-
【マクロ】【画像あり】4つの...
-
【マクロ】【画像あり】4つの...
-
セルにぴったし写真を挿入
-
【マクロ】エラー【#DIV/0!】が...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでフィルターした値を...
-
if関数の複数条件について
-
エクセルシートの見出しの文字...
-
excel
-
エクセルの文字数列関数と競馬...
-
VLOOKUP FALSEのこと
-
同じ名前(重複)かつ 日本 ア...
-
表計算ソフトでの様式の呼称
-
エクセルに写真が貼れない(フ...
-
【マクロ】数式を入力したい。...
-
【マクロ】実行時エラー '424':...
-
【画像あり】オートフィルター...
-
Office2021のエクセルで米国株...
-
【画像あり】【関数】指定した...
-
エクセルのVBAで集計をしたい
-
【マクロ】【画像あり】4つの...
-
【関数】3つのセルの中で最新...
-
【マクロ】excelファイルを開く...
-
LibreOffice Clalc(またはエク...
-
エクセルのライセンスが分かり...
おすすめ情報