📘 Excel逆引き事典

【VBA】開いている全ブックをバックグラウンドでコピーする方法

日々の業務の中で、大量のデータを扱う際に手作業でのコピーは労力がかかるだけでなくミスも起こりやすいです。この記事では、開いているすべてのワークブックを自動でバックグラウンドでコピーするVBAマクロを作成し、業務効率化に役立てましょう。

サンプルコード

VBA
Option Explicit
Sub CopyAllOpenBooks()
    Dim wb As Workbook, newWb As Workbook
    Application.ScreenUpdating = False '画面更新を停止
    For Each wb In Workbooks
        If wb.Name <> ThisWorkbook.Name Then '現在のワークブックはスキップ
            Set newWb = Workbooks.Add '新しいワークブックを作成
            wb.Sheets.Copy Before:=newWb.Sheets(1) 'シートをコピー
            newWb.SaveAs "C:\Users\YourUsername\Documents\" & wb.Name & "_Copy.xlsx" '保存先のパスとファイル名を適切に設定してください。
        End If
    Next wb
    Application.ScreenUpdating = True '画面更新を再開
End Sub

よくある質問

Q 元に戻せますか?

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

Q エラーが出たら?

A.
シート名や列番号が正しいか確認してください。また、保存先のパスにアクセス権があるかも確認しましょう。