VBAでExcelで複数選択中のシートを1枚ずつ新規ブックに切り出して保存したい。VBAコードを作ってみたところ、意図したように動いた。
やりたいこと
VBAで、Excelで複数選択しているシートを1枚ずつ新規ブックに切り出して保存したい。
保存先はとりあえずデスクトップで。
環境
- OS: Windows 11 Pro
- Excel: Microsoft Excel for Microsoft 365 MSO (バージョン 2307 ビルド 16.0.16626.20170) 64 ビット
やったこと/結果
VBAの新規標準モジュールに以下を書いて実行したところ、意図したように動いた。
切り出すと言っても、シートを「移動」させるのではなく「コピー」させるようにしたけど。
作ったコード
Option Explicit Sub SaveEechSelectedSheetAsNewBook() Dim folder As String Dim PickedSheet As Object '保存先のパスを取得する準備。環境変数%userprofile%の結果を取得。 folder = Environ("userprofile") '選択したシート各自だけのブックをそれぞれ新規作成・保存・閉じ For Each PickedSheet In ActiveWindow.SelectedSheets PickedSheet.Copy ActiveWorkbook.SaveAs folder & "\Desktop\" & PickedSheet.Name & ".xlsx" ActiveWorkbook.Close SaveChanges:=False Next PickedSheet End Sub