- ベストアンサー
EXCEL2007で複数のブックから特定データをまとめる方法
- EXCEL2007で複数ブック内の特定シート上にある特定のデータを特定ブックにまとめる方法について教えてください。
- 参照元は特定フォルダ内にある全ファイルが対象であり、ブック内の特定シートのデータをコピーしてまとめることが目的です。
- セル結合されているデータを適切にコピーする方法や、複数のブックを読み込んでデータをまとめる方法についても教えていただけると助かります。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
> 「実行時エラー'g': > インデックスが有効範囲にありません」 > と表示されます。 多分、シート名が違うのだと思います。 転記元および転記先のシート名をご確認ください。
その他の回答 (2)
- emaxemax
- ベストアンサー率35% (44/124)
転記元になる特定シートや転記先のシート名をお書きでないので、転記元がすべて「Sheet1」で共通、転記先が「統合」ということにして書いてみました。 以下のコードを転記先のBOOKの標準モジュールにコピペします。 ただし、実行する場合は実際のシート名に変更してくださいね。 最初フォルダーを選択する画面がでますので、そこから転記元ファイルが格納されているフォルダーを選んでください。 Sub TEST() Dim myfdr As String, fname As String Dim mb As Workbook, wb As Workbook Dim n As Long With Application.FileDialog(msoFileDialogFolderPicker) '対象とするフォルダの指定 If .Show = True Then myfdr = .SelectedItems(1) Else MsgBox "キャンセルします。" Exit Sub End If End With Set mb = ThisWorkbook 'このコピー先ブックをmbとする。 fname = Dir(myfdr & "\*.xls*") 'フォルダ内のExcelブックを検索 n = 2 Do Until fname = Empty '全て検索 Set wb = Workbooks.Open(myfdr & "\" & fname) 'そのブックを開きwbとする。 With mb.Sheets("統合") '転記 .Cells(n, "B").Value = wb.Sheets("Sheet1").Range("A4").Value .Cells(n, "C").Value = wb.Sheets("Sheet1").Range("G4").Value .Cells(n, "E").Value = wb.Sheets("Sheet1").Range("G6").Value End With n = n + 1 'カウント wb.Close (False) '開いたブックを保存しないで閉じる fname = Dir 'フォルダ内の次のExcelブックを検索 Loop '繰り返す MsgBox n - 2 & "件のブックを転記しましました。" End Sub
補足
ご丁寧に教えてくださり、ありがとうございます。 早速試してみましたが、1件転記後にエラーになってしまいます。 「実行時エラー'g': インデックスが有効範囲にありません」 と表示されます。 何が問題なのか、再度ご教示いただけますか。 よろしくお願いいたします。
- CaveatEmptor
- ベストアンサー率26% (126/470)
VBAを使えば比較的簡単にできると思いますが、質問者様のVBAのスキル次第です。 流れとしてはフォルダ内にあるブックを開くたびにコピー先を1行下げてデータをコピーするだけですよね。 コピー元のブック名やシート名は不要なのでしょうか? また開いていくブックの順番はランダムでもいいのでしょうか? 補足をお願いします。
補足
申し訳逢いません、VBAのスキルはありません。 記述が漏れてしまいましたが、コピー元ブック名の先頭10文字を、A1セルへコピーします。 参照先のフォルダ内のファイルをすべて開ければ、開く順番はランダムでも結構です。 よろしくお願いいたします。
お礼
何度もすみません。 > 多分、シート名が違うのだと思います。 > 転記元および転記先のシート名をご確認ください。 ご指摘の通り、転記元のシート名に誤りがありました。 修正したところ、うまくいきました。 これで何百件ものコピペをしなくて済みます。 本当にありがとうございました。