多くのワークブックのマージ(Microsoft Excel)
Joyは、かなりの数のワークブックをマージする際に問題に遭遇しました。ワークブックの大部分(約200冊、すべて1つのフォルダーにあります)には、それぞれ1つのワークシートが含まれていますが、それ以上のワークシートが含まれているものもあります。これらの各ワークブックを形成するワークシートは、単一のワークブックに追加する必要があります。
この規模のマージを行う最も簡単な方法は、特に頻繁に行う必要がある場合は、マクロを使用することです。次のマクロは、マージするファイルを選択するように求めるダイアログボックスを表示します。 (Ctrlキーを押しながら各ワークブックをクリックすると、複数のワークブックを選択できます。)選択したリストをループし、各ワークシートを開いて、すべてのワークシートをコードとともにワークブックの最後に移動します。
Sub CombineWorkbooks() Dim FilesToOpen Dim x As Integer Dim Outwbk As Workbook Set Outwbk = ActiveWorkbook On Error GoTo ErrHandler Application.ScreenUpdating = False FilesToOpen = Application.GetOpenFilename _ (FileFilter:="Microsoft Excel Files (.xls), .xls", _ MultiSelect:=True, Title:="Files to Merge") If TypeName(FilesToOpen) = "Boolean" Then MsgBox "No Files were selected" GoTo ExitHandler End If x = 1 While x <= UBound(FilesToOpen) Workbooks.Open Filename:=FilesToOpen(x) Sheets().Move After:=Outwbk.Sheets(Outwbk.Sheets.Count) x = x + 1 Wend ExitHandler: Application.ScreenUpdating = True Exit Sub ErrHandler: MsgBox Err.Description Resume ExitHandler End Sub
ワークシートをブックの最後に追加する過程で、重複するワークシート名が検出されると、Excelは自動的に(2)、(3)などを追加します。他のシートを参照している本の数式も、新しい名前を反映するように更新されます。
注:
このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。
_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。
このヒント(2409)は、Microsoft Excel 97、2000、2002、および2003に適用されます。Excel(Excel 2007以降)のリボンインターフェイス用のこのヒントのバージョンは、次の場所にあります。