プロが教えるわが家の防犯対策術!

タイトルの件について質問です。

下記画像をご覧ください。


3つのエクエルブックにお客様番号があります。
これを1つのブックにまとめたいのです。

件数は日によって、違います。1~50件位あります。
お客様番号を全て違います。


イメージは3つのセクションのお客様番号を1つのエクセルブックに
まとめる感じです。

これをマクロで1発でやりたいと考えています。
コード分かる方いましたら、ご教授の程、宜しくお願いいたします。

「【マクロ】3つのエクセルブックから1つエ」の質問画像

質問者からの補足コメント

  • ご連絡ありがとうございます。問合せに対しては下記のとおりです。
    ヒントであれば、教えて頂けると幸いです。

    1.フォルダは違うフォルダにあります。

    2.3つのシートのブック名は下記のとおりです
    Sheet1⇒あ
    Sheet2⇒い
    Sheet3⇒う

    3Sheet4⇒え

    No.1の回答に寄せられた補足コメントです。 補足日時:2022/12/08 20:59

A 回答 (2件)

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


Const Folder1 As String = "D:\goo\data8\aaa1"
Const Folder2 As String = "D:\goo\data8\aaa2"
Const Folder3 As String = "D:\goo\data8\aaa3"
は、それぞれ、ブック名「あ、い、う」を格納してあるフォルダ名です。
あなたの環境にあわせて適切に設定してください。
------------------------------------------------------
Option Explicit
Const Folder1 As String = "D:\goo\data8\aaa1"
Const Folder2 As String = "D:\goo\data8\aaa2"
Const Folder3 As String = "D:\goo\data8\aaa3"
Dim ms As Worksheet
Dim mrow As Long
Public Sub お客様番号まとめ()
Set ms = Worksheets("Sheet4")
ms.Cells.ClearContents
ms.Cells(1, "A").Value = "お客様番号"
mrow = 2
Call matome(Folder1 & "\" & "あ.xlsx", "Sheet1")
Call matome(Folder2 & "\" & "い.xlsx", "Sheet2")
Call matome(Folder3 & "\" & "う.xlsx", "Sheet3")

MsgBox ("完了")
End Sub
Private Sub matome(ByVal book_name As String, ByVal sheet_name As String)
Dim wb As Workbook
Dim ws As Worksheet
Dim wrow As Long
Dim maxrow As Long
Set wb = Workbooks.Open(book_name)
Set ws = wb.Worksheets(sheet_name)
maxrow = ws.Cells(Rows.Count, "A").End(xlUp).Row
For wrow = 2 To maxrow
ms.Cells(mrow, "A").Value = ws.Cells(wrow, "A").Value
mrow = mrow + 1
Next
wb.Close
End Sub
    • good
    • 0

補足要求です。


1.3つのexcelブックは同じフォルダ内にありますか。

2.3つのexcelブックのブック名は何ですか。(拡張子も含めて補足してください)

3.3つのexcelブックのシート名は、以下のようになっていますが、間違いないですか。
①1番目のブックのシート名:Sheet1
②2番目のブックのシート名:Sheet2
③3番目のブックのシート名:Sheet3

4.まとめ先のブックのシート名は何でしょうか。
この回答への補足あり
    • good
    • 0

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