
標題の件、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
excelVBAについて。
Excel(エクセル)
-
5
Excel関数の解決方法
Excel(エクセル)
-
6
役所でもらった書類をエクセル化するには? 役所に申請する用紙があります。A4で表になっていて枠内に文
その他(Microsoft Office)
-
7
VBA_日時のソート
Excel(エクセル)
-
8
エクセルのファイルのコピーをとりたい
Excel(エクセル)
-
9
質問58753 このコードでうまく動作しません。どうしたら良いですか Private Sub Wor
Visual Basic(VBA)
-
10
システムファイルについて
Excel(エクセル)
-
11
自動的に日付入力 応用
Excel(エクセル)
-
12
【マクロ】データ移動について代替案(コード)or助言を下さい
Excel(エクセル)
-
13
【マクロ】条件付き書式設定をマクロ化するには?
Excel(エクセル)
-
14
【マクロ】コードを少しでも、減らする為には
Excel(エクセル)
-
15
Excel いい方法教えてください。
Excel(エクセル)
-
16
excelVBAについて。
Excel(エクセル)
-
17
excelですが一つのマスに入ってる文字を2つのマスに変更できますか
Excel(エクセル)
-
18
以下のプログラムの実行結果はどうなると思いますか? その理由も教えてください。
Visual Basic(VBA)
-
19
【マクロ】Withステートメント2つを簡略する為には?
Excel(エクセル)
-
20
別のシートの指定列の最終行を返す関数の式を教えて下さい。
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
9月17日でサービス終了らし...
-
エクセル ドロップダウンリスト...
-
エクセル
-
エクセルの循環参照、?
-
エクセルのdatedif関数を使って...
-
特定のセルだけ結果がおかしい...
-
【マクロ】WEBシステムから保存...
-
【マクロ】A列にある、日付(本...
-
【マクロ】アクティブセルの時...
-
【マクロ】EXCELで読込したCSV...
-
【マクロ】別のブックから、フ...
-
iPhoneのExcelアプリで、別のシ...
-
【マクロ】3行に上から下に並...
-
【エクセル】期限アラートについて
-
【関数】同じ関数なのに、エラ...
-
VBA チェックボックスをオーバ...
-
Excelの新しい空白のブックを開...
-
Excelファイルを開くと私だけVA...
-
マクロ・VBAで、当該ファイルの...
-
Excelについての質問です 並べ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelファイルを開くと私だけVA...
-
エクセルについてどう関数を使...
-
マクロ・VBAで、当該ファイルの...
-
エクセルのセルに画像は埋め込...
-
エクセルで、一部のセルだけ固...
-
【マクロ、画像あり】A表かB表...
-
エクセルでカウントする
-
【マクロ】コードを少しでも、...
-
VBA_日時のソート
-
エクセルで教えてください。 例...
-
エクセル 月間シフト表で曜日ご...
-
セルの左に余白を付ける
-
エクセル
-
エクセルについて教えてください
-
2枚のエクセル表で数字をマッチ...
-
ExcelのIF関数との組み合わせの...
-
エクセルのファイルのコピーを...
-
エクセルで二つのブックの違い...
-
空白処理を空白に
-
Excelのチェックボックスについ...
おすすめ情報