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

複数エクセルファイルのレコードを1ファイルにまとめたい。



1.ファイル名は違う(質問上のファイル名はあ、い、う、の3つとします)
2.フィールド名は共通
3.レコード数(行側)はファイルにより違う

私はファイルあ の行末にファイルい と ファイルうのフィールド以外の行全部をコピーしペーストし、ファイルあをファイルAのように名前を変更し保存し利用しています。

しかしながら、ファイルあ、い、う程度ならその作業でも良いのですが、ファイル数が多くなると、手間がかかります。

ファイルは月単位に作られ、毎月各ファイルの行数も変わります。

フィールドは常に共通です。効率的にファイルA(あ、い、う、え、お、、、、)を作る関数とかVBA?とか教えて頂けないでしょうか?

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

  • 補足要求下さりありがとうございます。
    ①拡張子は.xlsxです。エクセル2016です。
    ②シート名は全く同じです。
    ③見出しフィールド名はあ、い、う共に共通なので、
    見出し列名が一致すればあ、い、うの行順番は問いません。
    ④見出し列はあ、い、う共に共通かつ、行側の並びはあ、い、うが う、い、あ になっても構いません。
    列名(フィールド並び含め)を一行目に利用し、2行目以降のレコードだけを繋げて1ファイル(1ワークシート)に出来ればと思っております。
    ⑤同じフォルダにファイル名が異なり、ワークシート名が同じで存在しております。
    ⑥まとめる先のファイルフォルダは変わっても同じでも構いません。
    よろしくお願い致します。

      補足日時:2018/06/27 21:07

A 回答 (2件)

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


シート名が提示されていないので、”集計”としました。変える場合は
Const sname As String = "集計" をあなたのシート名に変えてください。
Const folder As String = "D:\goo\excel\goo371\" は、集計対象のファイルが格納されているフォルダです。
あなたの環境にあわせて、適切に設定して下さい。
マクロを登録したファイルのシートにも同じシート名(例では集計)のシートを予め作成しておいてください。
集計対象のフォルダ内の全てのファイル(拡張子が.xlsx)のシート(例では集計)をコピーして、マクロのあるファイルのシート(例では集計)に格納します。
--------------------------------------
Option Explicit
Const sname As String = "集計"
Const folder As String = "D:\goo\excel\goo371\"
Public Sub ファイル纏め()
Dim path As String
Dim datafile As String
Dim row0 As Long
Dim row As Long
Dim maxrow As Long
Dim ws As Worksheet
row0 = 1
ThisWorkbook.Worksheets(sname).Cells.Clear
datafile = dir(folder & "*.xlsx")
Do While datafile <> ""
Workbooks.Open (folder & datafile)
Set ws = Worksheets(sname)
If row0 = 1 Then
ws.Rows(1).Copy Destination:=ThisWorkbook.Worksheets(sname).Rows(1)
row0 = row0 + 1
End If
maxrow = ws.Cells(ws.Rows.Count, 1).End(xlUp).row
For row = 2 To maxrow
ws.Rows(row).Copy Destination:=ThisWorkbook.Worksheets(sname).Rows(row0)
row0 = row0 + 1
Next
Workbooks(datafile).Close
datafile = dir()
Loop
MsgBox ("完了")
End Sub
    • good
    • 1
この回答へのお礼

ありがとうございます!ベストアンサーにさせていただきます。

お礼日時:2018/06/27 21:49

補足要求です。


①ファイル名(あ、い、う)の拡張子は何でしょうか。.xlsですか、それとも.xlsxですか。
②3つのファイルの同じシート名のものをまとめればよいと理解しましたが、そのシート名は何でしょうか。
(大文字、小文字、全角、半角についてもを正確に提示ください)
③ファイル”あ”の見出し行(1行目)とデータ行(2行目以降)をコピーし、”い”と”う”についてはデータ行(2行目)をコピーすれば良いのでしょうか。(フィールドに意味がよくわかりませんので、その確認です)
④ファイルをまとめるとき、順番はかならず、”あ”、”い”、”う”の順でしょうか。
それとも、”い”、”う”、”あ”のようになっても良いのでしょうか。
(その場合は、”い”の見出し行とデータ行をコピーし、他のファイルはデータ行のみコピーします)
⑤ファイル名(あ、い、う)は、同じフォルダにまとめてある前提で良いですか。
また、そのフォルダには、(あ、い、う)以外のファイルは存在しない前提で良いですか。
(集計対象のファイルのみ格納されている前提)
⑥まとめる先のファイル(ファイルA)は、⑤とは違うフォルダに格納されている前提で良いですか。
    • good
    • 0

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