場合によっては、異なる Excel ワークブックのシートを結合して、新しいレポートまたは統合データ ファイルを作成する必要があります。このような操作は、標準の MS Excel ツールを使用して手動で実行できますが、多大な時間と労力がかかる場合があります。このプロセスを自動化し、レポートの作業を高速化する方法を考えてみましょう。
たとえば、多くのワークブック Excel があり、次のようなものを作成したいとします。 ワークシートのコレクション すべての本を 1 つのファイルにまとめます。これを行うには、すべてのシートを収集するブックを開き、次のマクロ コードを追加します。
すべてのシートを収集する Excel ワークブックを開いた状態で、Visual Basic Editor (Alt+F11) を開きます。 モジュール VBA を挿入 ( Insert - Module ) そして、このマクロ コードをそこにコピーします。
Sub CombineWorkbooks() 'moonexcel.com.ua Dim FilesToOpen Dim x As Integer 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 " ファイルが選択されていません! " GoTo ExitHandler End If x = 1 While x <= UBound(FilesToOpen) Workbooks.Open Filename:=FilesToOpen(x) Sheets().Move After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count) x = x + 1 Wend ExitHandler: Application.ScreenUpdating = True Exit Sub ErrHandler: MsgBox Err.Description Resume ExitHandler End Sub
その後、Excel に戻り、メニューからマクロを実行できます。 Tools - Macro - Macros (Alt+F8) 。ダイアログ ボックスが表示されるので、現在のワークブックに追加するシートを 1 つ以上 (Ctrl キーを押しながら) 選択する必要があります。
別の Excel ファイル拡張子 (*.xlsx、*.xlsm、*.xlsb など) を使用する場合は、マクロのコードの 9 行目に適切な変更を加える必要があります。