📘 Excel逆引き事典

【VBA】開いている全ブックを完全一致でコピーする方法

日々の業務では、同じ名前のワークブックを複数開いて作業することが多いと思います。しかし、これらのワークブックを一つずつ手動でコピーするのは非常に労力がかかります。そこで、この記事ではVBAを使って開いている全ワークブックを完全一致でコピーする方法を紹介します。

サンプルコード

VBA
Option Explicit
Sub CopyAllOpenBooks()
    Dim wb As Workbook, targetWb As Workbook
    Application.ScreenUpdating = False
    For Each wb In Workbooks
        If wb.Name Like "*特定の名前*" Then '完全一致でコピーするワークブックを指定
            Set targetWb = Workbooks.Add
            wb.Sheets(wb.Sheets.Count).Copy Before:=targetWb.Sheets(1)
            Application.DisplayAlerts = False
            wb.Close SaveChanges:=False
            Application.DisplayAlerts = True
        End If
    Next wb
    Application.ScreenUpdating = True
End Sub

よくある質問

Q 元に戻せますか?

A.
VBAの実行結果は「元に戻す」が効きません。必ずバックアップを取ってから実行してください。

Q エラーが出たら?

A.
シート名や列番号が正しいか確認してください。また、ワークブック名が完全一致で指定されているかも確認しましょう。