- ベストアンサー
【VBA】複数のファイルを一つにまとめる方法
- VBAで複数のファイルを一つにまとめる方法について教えてください。
- 支店ごとに集計ファイルがあり、それを総合ファイルにまとめたいです。
- ファイルを順番に開いて閉じる方法や、ファイル名を取得して各列の1行目に代入する方法を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ざっと読んだ感じでは、全てを実現するのはある程度VBAの知識が必要と思います。 参考に。 新規ブックに下記のマクロをコピペして、必ず保存する。 同じフォルダに集計xxx.xls のコピーをいくつか用意する。 Sub Test() Dim wb As Workbook, fName As String, i As Integer, r As Range For i = 1 To 100 fName = ThisWorkbook.Path & "\集計" & _ Format(i, "000") & ".xls" If Dir(fName) <> "" Then Set wb = Workbooks.Open(fName) Set r = ThisWorkbook.Worksheets(1).Range("IV1").End(xlToLeft) If r.Value = "" Then r.Value = Left(wb.Name, Len(wb.Name) - 4) Else r.Offset(0, 1).Value = Left(wb.Name, Len(wb.Name) - 4) End If wb.Close End If Next i End Sub
その他の回答 (1)
- diashun
- ベストアンサー率38% (94/244)
diashun です。 これって殆どデータベース(DB)の世界ですよね。 これから先も、どうしてもExcelでやるということなら、それなりの回答もありと思いますが、 私なりには、DB構築をお勧めします。 ご希望の方法を実施するにしても、コピペでの実行は 結構手間がかかりますし、間違いも多いと思います。 データが大量に蓄積する前にDB構築をお勧めします。でもこの場合だとMS ACCESSで十分とは思いますが・・・。
お礼
回答ありがとうございます。そうですよね・・・データ多すぎですよね。でもこの会社ではAccessは使わないで、Excelと決まっているのだそうです。誰が決めたかは知らないけど・・・。コピペでもかなり時間がかかります。それを・・・明日もかなりの量手動+コピペマクロでしないといけません。順番を間違えないかどうかが心配で心配で。実は100というのは仮の数字でそれだけのファイルじゃ済まなくて・・・泣いています。アドバイスありがとうございます。
お礼
いつも回答ありがとうございます。すごい、途中をカウントしちゃうんですね。stringでファイル名を取得しているので・・・どうやって入れるのかと思っていました。すべてができるようになるにはまだまだ先のようですね。明日は頂いたコードをテストしてみます。で・・・いずれは何とか作れるようになったらと思います。ありがとうございました。
補足
本来お礼を申し上げる場ではありませんが・・・・動作は完璧でした。ありがとうございました。