TOP

ワークシートのコレクション

説明

場合によっては、異なる Excel ワークブックのシートを結合して、新しいレポートまたは統合データ ファイルを作成する必要があります。このような操作は、標準の MS Excel ツールを使用して手動で実行できますが、多大な時間と労力がかかる場合があります。このプロセスを自動化し、レポートの作業を高速化する方法を考えてみましょう。

たとえば、多くのワークブック Excel があり、次のようなものを作成したいとします。 ワークシートのコレクション すべての本を 1 つのファイルにまとめます。これを行うには、すべてのシートを収集するブックを開き、次のマクロ コードを追加します。


マクロの VBA コード

すべてのシートを収集する 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 行目に適切な変更を加える必要があります。

トピックに関する記事: