dポイントプレゼントキャンペーン実施中!

以前、集計用ブックへ収支データブックと明細ブックから各シートをコピーしたくご質問させていただきました。
その節はご教授頂きましてありがとうございました。

http://oshiete.goo.ne.jp/qa/12460573.html

今回はAというフォルダにある、集計用①(集計先)ブックの「明細」というシートへ、複数ある(20ブック程)「明細_●●支店_契約番号」(集計元)ブックの「明細」シートのデータをコピペしたいのです。

その際、ファイル名の支店名と契約番号を集計用①(集計先)ブックの「明細」シートA列、B列へ転記の上、コピペしたいです。

●集計元ブック名 例)明細_東京支店_1234

「明細_東京支店_1234」(集計元)ブック他、複数ブックの「明細」シートのデータはA9~N9以降に入っています。
9行目が項目名が入っているので、最初にコピペした支店以外は10行目〜コピペしたいです。

①東京支店 9行目〜
②仙台支店 以下支店は10行目〜
③九州支店
④大阪支店
⑤名古屋支店

①東京支店データ
【元データ項目行】
A9:契約番号、B9:支店名 項目だけあり
C9:実施年月・・・・・P9:伝言メモ 元データ

【データ行】A10~N10以降、データコピペ
A列:契約番号、B列、支店名へはファイル名を転記
C列以降に元データをコピペするとR列までとなる

②仙台支店データ以降
【データ行】A10~N10以降、データコピペ(A列:契約番号、B列、支店名、C列以降に元データをコピペするとR列までとなる)

https://gyazo.com/7f684b3a20ad09f22e91414e2b4d5168

ファイル名を転記することが難しいようでしたら
データのコピーだけでも自動化できたらと思っております。

何卒ご教授願います。

A 回答 (3件)

以下のマクロを標準モジュールに登録してください。


各支店データのブックの拡張子は.xlsxであることが前提です。

Option Explicit

Dim row1 As Long
Dim sh1 As Worksheet
Public Sub 明細コピー()
Dim siten_arr As Variant
Dim siten As Variant
Dim bookname As String
Set sh1 = Worksheets("明細")
sh1.Cells.ClearContents
row1 = 9
bookname = Dir(ThisWorkbook.Path & "\" & "明細_*_*.xlsx")
Do While bookname <> ""
Call get_book(bookname)
bookname = Dir()
Loop
MsgBox ("完了")
End Sub
'1つのファイルを処理する
Private Sub get_book(ByVal bookname As String)
Dim wb As Workbook
Dim maxrow As Long
Dim row2 As Long
Dim names As Variant
Dim sh2 As Worksheet
Dim base As String
base = Left(bookname, Len(bookname) - 5)
names = Split(base, "_")
Set wb = Workbooks.Open(ThisWorkbook.Path & "\" & bookname)
Set sh2 = wb.Worksheets("明細")
'見出しの設定
If row1 = 9 Then
sh1.Range("A9").Value = "支店名"
sh1.Range("B9").Value = "契約番号"
sh1.Range("C9:R9").Value = sh2.Range("A9:P9").Value
row1 = row1 + 1
End If
maxrow = sh2.Cells(Rows.Count, 1).End(xlUp).Row
For row2 = 10 To maxrow
sh1.Cells(row1, "A").Value = names(1) '支店名
sh1.Cells(row1, "B").Value = names(2) '枝番
sh1.Range("C" & row1 & ":R" & row1).Value = sh2.Range("A" & row2 & ":P" & row2).Value
row1 = row1 + 1
Next
wb.Close
End Sub
    • good
    • 1
この回答へのお礼

助かりました

この度もご教授いただきましてありがとうございました。
無事、問題なくコピペできました。
本当にありがとうございました。

お礼日時:2021/08/25 21:38

補足要求です。


1.マクロを格納するファイルは、集計用①ブックでしょうか。

2.明細へコピーする支店の順番ですが、
①東京支店
②仙台支店
③九州支店
④大阪支店
⑤名古屋支店
であることが必須でしょうか。
それとも、でたらめに並んでも良いのでしょうか。

3.東京支店データのA10~N10以降をC列以降にコピペすると、R列までとなる。
ということですが、A10~P10の間違いではないでしょうか。(仙台支店データ以降も同様)
A10~N10以降をC列以降にコピペするとQ列までとなります。
    • good
    • 1
この回答へのお礼

こんにちわ。
いつもご教授いただきましてありがとうございます。
また、ご返信が遅くなり申し訳ありません。

以下、回答させて頂きます。

>1.マクロを格納するファイルは、集計用①ブックでしょうか。
→はい、仰る通りです。

>2.明細へコピーする支店の順番ですが、
①東京支店
②仙台支店
③九州支店
④大阪支店
⑤名古屋支店
であることが必須でしょうか。
それとも、でたらめに並んでも良いのでしょうか。
→順番はバラバラでもかまいません。

3.東京支店データのA10~N10以降をC列以降にコピペすると、R列までとなる。
ということですが、A10~P10の間違いではないでしょうか。(仙台支店データ以降も同様)
A10~N10以降をC列以降にコピペするとQ列までとなります。
→大変失礼いたしました。
 仰る通り、P10です。申し訳ありません。

お礼日時:2021/08/24 18:31

こんばんは。



直接の回答ではありませんが、質問者さんが作成されているマクロコード
 をアップして、現状~で、結果を~したいが、現状~で、思った様に
 できないので、どこを修正したら良いかとか、若しくは、エラーが
 出るなど、ピンポイントで質問した方が良いかと思います。
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!