EXCELに入っている複数シートを1つずつ「ブック」に自動で変換するマクロを説明します。
VBAで操作する内容(手順)です。
- 画面更新を停止する。
- 元のブックを設定。
- 各シートを新しいブックにコピー。
- 新しいブックを保存。
- 新しいブックを閉じる。
- 画面更新を再開する。
以下、コピペで使えるコードを紹介します。
EXCELの複数シートを、それぞれ別のブックで保存したい時のVBA
EXCELで作った複数のシートを、それぞれ別のブックで保存したい時のマクロを紹介します。
以下は、元のブックにはシートを残したまま、複数シートそれぞれのブックを作成するコードです。
'EXCELの複数シートを、それぞれ別のブックで保存したい時のVBA
Sub ExportSheetsToNewWorkbooks()
Dim ws As Worksheet
Dim newBook As Workbook
Dim originalBook As Workbook
Dim savePath As String
' 保存するフォルダのパスを指定
savePath = "C:\YourFolderPath\" ' ここにフォルダパスを入力
' 画面更新をオフにする
Application.ScreenUpdating = False
' 元のブックを設定
Set originalBook = ThisWorkbook
' 各ワークシートを新しいブックとして保存
For Each ws In originalBook.Worksheets
' 新しいブックを作成
Set newBook = Workbooks.Add
' 元のシートを新しいブックにコピー
ws.Copy Before:=newBook.Sheets(1)
' 新しいブックを保存
newBook.SaveAs Filename:=savePath & ws.Name & ".xlsx"
' 新しいブックを閉じる
newBook.Close SaveChanges:=False
Next ws
' 画面更新をオンにする
Application.ScreenUpdating = True
MsgBox "全てのシートを新しいブックとして保存しました。", vbInformation
End Sub
上記のコードをコピーして、VBE(Visual Basic エディタ)の標準モジュールに貼り付けます。
「保存するフォルダのパスを指定」の部分は、あなたのPC環境に合わせて変更する必要があります。
' 保存するフォルダのパスを指定
savePath = "C:\YourFolderPath\" ' ここにフォルダパスを入力
保存したいフォルダの上で、「右クリック」→「パスのコピー」をして、コードの「”C:\YourFolderPath\”」の部分に貼り付けします。
パスの最後に、半角で「¥」マークを付けます。(PCのキーボードで『ろ』のキーを打ちます。)
今回は仮に、「複数シートをブックに一括変換」という名前のフォルダを作って、変換したいEXCELも一緒に入れておきます。
マクロを実行すると、以下のように指定したフォルダの中に、複数シートがそれぞれブックに変換された状態で保存されます。
今回のコードでは、元のブックに複数シートが残った状態となります。必要に応じてシートを削除してください。