複数ブックのシートを集計用のブックにコピーしたいです。
以下ブックは同じフォルダに存在します。
①集計用ブック(元々ピボットシートがあります)
※③を①にコピーしたあと、ピボットで集計したい為
②収支データブック
③明細ブック
①の集計用ブックへ②のブックの「推移」、「明細」シートと③の「sheet1」シートをコピーしたいです。
②の「推移」、「明細」シートは図とデータが混じったデータが入っている為、そのままの書式でコピーしたいです。
②と③共に、4月以降データが締まった月までのデータが システム上自動的に抽出される為、抽出したい月以外を削除したいです。
今回の場合だと4.5.6月が出てきてしまうので6月だけ抽出したいです。
複数支店分同じ処理を自動化したいため
何卒ご教授願います。
No.7ベストアンサー
- 回答日時:
各支店用にマクロを書き換える場合、
Const book1 As String = "収支データブック.xlsx"
Const book2 As String = "明細ブック.xlsx"
上記の2行のブック名を各支店用に変更すれば良いはずです。(シート名は同じ前提です)
それでうまくいかない場合は、補足してください。
こんにちわ。
いつもご教授頂きましてありがとうございます。
支店用マクロですが、ご教授いただいた箇所を変更し、無事問題なく動作する旨確認いたしました。
追加でご教授頂きまして大変助かりました。
ありがとうございました。
No.6
- 回答日時:
>無事、解決いたしました!
解決してよかったです。1支店分が完了でしょうか。
集計用ブック
収支データブック
明細用ブックは、それぞれ支店毎に存在するということでしょうか。
例えば
○○支店集計用ブック
○○支店収支データブック
○○支店明細用ブック
にようになっているということでしょうか。
ご心配、お手数おかけいたしました。
仰る通り、1支店分が完了しましたので
各支店の集計用ブックにマクロをコピペする予定です。
各支店名毎にフォルダ分けしており
その中に◯◯支店集計ブック、◯◯支店データブック、◯◯支店明細用ブックがあります。
No.5
- 回答日時:
こんにちは。
先週は再度ご教授いただきましてありがとうございました。
当初の私のコピペの仕方が違っていたようで大変お手数おかけいたしました。
無事、解決いたしました!
ありがとうございました。
No.4
- 回答日時:
wb.Worksheets(Sheet1).Copy
after:=ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count)
ように、2行にわかれていませんか。
wb.Worksheets(Sheet1).Copy after:=ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count)
は1行に記述します。(添付図の黄色の個所が正しい例です)
お世話になっております。
仰る通り、2行に分かれていたかもしれません。
恐れ入りますが、週明け再度確認させていただきます。
お手数おかけして申し訳ありませんでした。
No.3
- 回答日時:
>以下含めafterから始まる箇所でコンパイルエラー「構文エラー」と表示されました。
>after:=ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count)
こちらでは、エラーが発生していません。
マクロは全て、手打ちでなくコピペされたのでしょうか。
また、コピペした後、上記行付近を変更していないでしょうか。
ご返信が遅くなり申し訳ありません。
ご教授頂いたマクロをコピペして
標準モジュールに貼りつけただけです。
手修正等はしておりません。
ちなみにコピペした際、after〜の部分が赤字になってしまいます。
私の貼り付け方が悪いのかもしれません…。
集計用ブックにマクロを設定する。
集計用ブックには予めピボットシートが存在する。
2つのブックからそれぞれのシートを集計用ブックにコピーする。
ご提示させて頂いた上記条件での認識で相違ないでしょうか?
私の説明不足で認識が違うようでしたら申し訳ありません。
No.2
- 回答日時:
以下のマクロを標準モジュールに設定してください。
Option Explicit
Public Sub 集計ブックコピー()
Const book1 As String = "収支データブック.xlsx"
Const book2 As String = "明細ブック.xlsx"
Const Sheet1 As String = "推移"
Const sheet2 As String = "明細"
Const Sheet3 As String = "Sheet1"
Dim sheet_name As String
Dim wb As Workbook
Call delete_sheet(Sheet1)
Call delete_sheet(sheet2)
Call delete_sheet(Sheet3)
Set wb = Workbooks.Open(Filename:=ThisWorkbook.Path & "\" & book1)
wb.Worksheets(Sheet1).Copy after:=ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count)
ThisWorkbook.Worksheets(Worksheets.Count).Name = Sheet1
wb.Worksheets(sheet2).Copy after:=ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count)
ThisWorkbook.Worksheets(Worksheets.Count).Name = sheet2
wb.Close
Set wb = Workbooks.Open(Filename:=ThisWorkbook.Path & "\" & book2)
wb.Worksheets(Sheet3).Copy after:=ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count)
ThisWorkbook.Worksheets(Worksheets.Count).Name = Sheet3
wb.Close
MsgBox ("完了")
End Sub
'指定されたシートを削除
Private Sub delete_sheet(ByVal sheet_name As String)
Dim i As Long
For i = 1 To ThisWorkbook.Worksheets.Count
If LCase(sheet_name) = LCase(ThisWorkbook.Worksheets(i).Name) Then
Application.DisplayAlerts = False 'シート削除時の警告を出さないようにする
ThisWorkbook.Worksheets(i).Delete
Application.DisplayAlerts = True 'シート削除時の警告を出すようにする(元に戻す)
Exit Sub
End If
Next
End Sub
お世話になっております。
マクロをご教授頂きましてありがとうございます。
早速、検証させていただきましたところ
以下含めafterから始まる箇所でコンパイルエラー「構文エラー」と表示されました。
after:=ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count)
いろいろ調べてみたのですが、分からず…。
申し訳ありませんが、再度ご教授願います。
No.1
- 回答日時:
補足要求です。
1.マクロを格納するのは集計用ブックですか。
2.収支データブックと明細ブックの拡張子は何ですか。(.xlsxですか)
3.収支データブックの推移シートと明細シートをシート毎、集計用ブックへコピーします。
既に、集計用ブックに推移シートと明細シートが存在する場合は、そのシートは上書きされますが宜しいですか。
4.明細ブックのSheet1をシート毎、集計用ブックへコピーします。
既に、集計用ブックにSheet1が存在する場合は、そのシートは上書きされますが宜しいですか。
5.6月のデータのみ抽出したいとのことですが、"6月"の情報をマクロ内で直接抱えて良いでしょうか。
もし、来月になると、おそらく7月のデータを処理したくなると思いますが、その場合、マクロ内の
「6月」を「7月」にあなたが修正する必要があります。
その予定で考えられているのでしょうか。
もし、シートのどこかのセルに6月の情報を定義していけば、それをマクロが参照し、6月のデータのみを
抽出するようにすることは可能です。
6.シート毎、推移シートをコピーすると、この場合、4月と5月を削除するので、C10:D13の範囲のセルが空白に
なりますが、それで良いのでしょうか。
それとも、6月分を左につめて、C10:C13に6月を残したいのでしょうか。
7.シート毎、明細シートをコピーした場合、6月を残しますが、このシートについては、最新の月(=6月)は
常に、B10:E13に書かれているのでしょうか。そうであれば、対象月の判定をせずに、常にB10:E13のみ残し、
以降の行を空白にすれば良いことになります。
8.Sheet1の6月のみを残した場合、6月分は上に詰めて、10,11行に残すのでしょうか。
9.複数支店分同じ処理を自動化したいとのことですが、今回のマクロで処理されるのは1支店分なのですか。
その場合、どのようにして複数支店分を実現しようとしていますか?
いつもお世話になっております。
ご質問頂きましてありがとうございます。
以下、回答させていただきます。
ただ、該当月(今回の場合ですと6月)のみ残したいという条件なのですが、こちらの都合で大変申し訳ありませんが
収支データの各明細と明細ブックのシートを集計用にコピーするのみの条件に変更させてください。
本当に申し訳ありません。
大変恐縮ですが、5〜8に関しては回答を割愛させて頂きます。
>1.マクロを格納するのは集計用ブックですか。
→はい、そうです。
>2.収支データブックと明細ブックの拡張子は何ですか。(.xlsxですか)
→.xlsxです。
>3.収支データブックの推移シートと明細シートをシート毎、集計用ブックへコピーします。
既に、集計用ブックに推移シートと明細シートが存在する場合は、そのシートは上書きされますが宜しいですか。
→はい、大丈夫です。
>4.明細ブックのSheet1をシート毎、集計用ブックへコピーします。
既に、集計用ブックにSheet1が存在する場合は、そのシートは上書きされますが宜しいですか。
→はい、大丈夫です。
>9.複数支店分同じ処理を自動化したいとのことですが、今回のマクロで処理されるのは1支店分なのですか。
その場合、どのようにして複数支店分を実現しようとしていますか?
→
支店ごとのブックにマクロを組み、1ファイルごとに処理するつもりでした。
恐れ入りますが、何卒ご教授願います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 複数セルデータを別シートの単一セルにコピーしたい。(詳細をご参照ください) 1 2022/12/14 15:08
- Excel(エクセル) 【マクロ】同じフォルダ内にある複数ブックから1つのブック内の1シートにデータを集めたい 6 2022/09/28 18:16
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/05/24 08:33
- Visual Basic(VBA) VBAが止まります。 1 2022/09/02 14:51
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) Excel VBA 最終行を取得しVlookup関数をコピーする方法をコーディングで教えてください。 3 2023/05/11 13:14
- Visual Basic(VBA) 【困っています2】VBA 追加処理の記述を教えてください。 2 2022/08/26 11:42
- Visual Basic(VBA) 特定の文字を含むシートだけマクロ処理をしたい 1 2023/05/22 01:43
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルの関数 ENTERを押...
-
VBAでブックを非表示で開いて処...
-
エクセルを共有するとPCによっ...
-
Excel(2010)のフィルターが保...
-
エクセルで参照しているデータ...
-
Excelでブックの共有を掛けると...
-
WorkBooksをオープンさせずにシ...
-
複数ファイルから特定シートの...
-
エクセルで別ブックをバックグ...
-
エクセルで50行ごとに区切った...
-
vbaでpdfを開いて1ページ目のみ...
-
複数のセルをコピーし、別シー...
-
別ブックから入力規則でリスト...
-
外部ブック参照が#REF!になって...
-
エクセルファイルを開かずにpdf...
-
VBAでブック保護非保護を判定す...
-
フォルダ内ブックの数式を全て...
-
複数のブックをひとつのブック...
-
アクセスvbaでエクセルブックを...
-
エクセルで開いていないbookの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルを共有するとPCによっ...
-
エクセルの関数 ENTERを押...
-
VBAでブックを非表示で開いて処...
-
WorkBooksをオープンさせずにシ...
-
Excelでブックの共有を掛けると...
-
エクセルで参照しているデータ...
-
Excel(2010)のフィルターが保...
-
Excelで複数ブックの同一セルに...
-
VBA バックグラウンドで別ブッ...
-
エクセルで50行ごとに区切った...
-
エクセルで「ディスクがいっぱ...
-
エクセルにおける,「ブック」...
-
エクセルファイルを開かずにpdf...
-
フォルダ内の複数ファイルから...
-
ブックのピボットを別ブックに...
-
エクセルシートの一部を送りたい
-
エクセル2016です。「ブッ...
-
エクセルで別ブックをバックグ...
-
フォルダ内の複数ファイルから...
-
複数ファイルから特定シートの...
おすすめ情報
②ブックの明細シート画像
https://gyazo.com/6e332dcea069d29e56c79996180692b6
③ブックのsheet1シート画像
https://gyazo.com/6057aef012d77fa0fcca8615416a81d5