複数のエクセルを1つにまとめるてファイル名をシート名で保存

※本サイトはプロモーション広告を含む場合があります。

複数のエクセルファイルを1つにまとめる方法。シート名は各ファイル名を利用。

Excelを開く

Excelを開き、新しいブックを作成します。

 

VBAエディタを開く

「Alt + F11」キーを押してVBAエディタを開きます。

 

モジュールを挿入

「挿入」->「モジュール」をクリックし、以下のコードをコピーして貼り付けます。

Sub MergeExcelFiles()
  Dim wbDst As Workbook
  Dim wbSrc As Workbook
  Dim wsSrc As Worksheet
  Dim FolderPath As String
  Dim Filename As String

  ' 統合するフォルダのパスを設定してください
  FolderPath = "C:\path\to\your\folder\" ' フォルダのパスを指定

  ' 最後にバックスラッシュを追加する
  If Right(FolderPath, 1) <> "\" Then FolderPath = FolderPath & "\"

  ' マクロを実行しているブックを対象とする
  Set wbDst = ThisWorkbook

  ' フォルダ内の最初のファイルを取得する
  Filename = Dir(FolderPath & "*.xlsx")

  ' フォルダ内の全てのファイルを処理するループ
  Do While Filename <> ""
    ' ファイルを開く
    Set wbSrc = Workbooks.Open(FolderPath & Filename)
    ' 各シートをコピーして新しいシートとして追加する
    For Each wsSrc In wbSrc.Worksheets
    wsSrc.Copy After:=wbDst.Sheets(wbDst.Sheets.Count)
    wbDst.Sheets(wbDst.Sheets.Count).Name = Left(Filename, Len(Filename) - 5)
    Next wsSrc
    ' ソースブックを閉じる
    wbSrc.Close False
    ' 次のファイル名を取得する
    Filename = Dir()
  Loop
End Sub

 

マクロを実行

VBAエディタを閉じ、「Alt + F8」キーを押して「MergeExcelFiles」マクロを選択し、「実行」をクリックします。

 

詳細説明

FolderPath

統合するエクセルファイルが保存されているフォルダーのパスを指定します。必ず、フォルダーのパスの最後にバックスラッシュ \ を追加してください。

Filename

Dir 関数を使ってフォルダー内のすべてのエクセルファイルを取得します。

wbDst

このマクロを実行しているブックを表します。

wbSrc

各ソースブックを開いて処理します。

wsSrc

ソースブック内の各シートを表します。

 

まとめ

このマクロを実行することで、指定したフォルダー内のすべてのエクセルファイルが1つのブックに統合され、各シートの名前が元のファイル名になります。