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