• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excelシートの統合するマクロなどがありましたらお教えください。)

Excelシートを統合するマクロのご教示をお願いします

このQ&Aのポイント
  • 各支店からExcelシートで送信されてくる報告内容を一気にまとめるマクロがあれば教えてください。
  • Supportで支持されるマクロを使用し、複数のExcelシートを統合する方法を教えてください。
  • Excelシートの統合に関するマクロや方法について詳細をお知りになりたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

各シートの配置が分からないので仮定でお答えします。 1.各支店から来たExcelシートは全て同じフォルダー内にあるものとします。 2.データはすべてSheet1という名前のシートにあるものとします。 3.項目行は1行目、データ行は2行目から下へ、A列には空白のない状態で並んでいるものとします。 4.データをまとめるファイルも同じフォルダー内に作成し、まとめる先のシート名はTOTALとします. 5.マクロ実行前にまとめるファイルはいったん保存してください。 6.TOTALシートの1行目には項目が入っているものとします。 以上の前提で以下のマクロを実行してください。 Sub Test01() Application.ScreenUpdating = False fldPath = ThisWorkbook.Path & "\" fname = Dir(fldPath & "*.xls") 'フォルダ内のExcelファイルを検索 Do Until fname = Empty '全て検索し終えると、fname = Empty となるので、その間以下を実行 If fname <> ThisWorkbook.Name Then Workbooks.Open fldPath & fname '選択したファイルを開きます 'mx = Application.WorksheetFunction.Max(Sheets("Sheet1").Columns(1)) 'Sheet1の最大値を取得 lr = Sheets("Sheet1").Range("A65536").End(xlUp).Row 'Sheet1の最終行を取得 fr = ThisWorkbook.Sheets("TOTAL").Range("A65536").End(xlUp).Row + 1 'Totalの開始行を取得 Sheets("Sheet1").Rows("2:" & lr).Copy 'Sheet1のデータ行(2行目以降)をコピー Application.DisplayAlerts = False ActiveWorkbook.Close (False) '閉じる Application.DisplayAlerts = True ThisWorkbook.Sheets("TOTAL").Cells(fr, 1).Select 'Totalの開始行を選択 ActiveSheet.Paste 'データ貼り付け Application.CutCopyMode = False End If fname = Dir '選択したフォルダ内の次のExcelファイルを検索 Loop '繰り返す Application.ScreenUpdating = True End Sub

関連するQ&A