VBAでExcelで複数選択中のシートを1枚ずつ新規ブックに切り出して保存

プログラミング言語
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
タイトルとURLをコピーしました