別のブックに移動したいシートのシート名を配列に格納してSelectしてMoveして
Moveした先のブックをSaveAsで保存する感じで。
ざっくりとイメージはこんな。
VBA
1Dim ws As Worksheet 'Worksheetオブジェクトを操作するための変数
2Dim SheetNames() As String '選択したシート名を保持する配列
3Dim i As Integer '配列の添え字変数
4
5
6i = 1
7For Each ws In Worksheets 'すべてのワークシートを調べる
8 If ws.Name <> "マクロ実行" Then 'ワークシート名が"マクロ実行"でなければ
9 ReDim Preserve SheetNames(1 To i) '配列変数をRedim Preserveステートメントを使って内容を保持したまま要素数を増やす
10 SheetNames(i) = ws.Name '配列変数に移動するシートのシート名を格納
11 i = i + 1
12 End If
13Next
14
15Sheets(SheetNames).Select '配列変数に格納されたシート名のシートを選択
16
17ActiveWindow.SelectedSheets.Move '選択したシート(つまり"マクロ実行"以外)をすべて別の新しいブックに移動
18ActiveWorkbook.SaveAs Filename:="newfile" '新しいブックがActiveなので、名前を付けて保存
エラーチェックなんかは随所に足してあげてください。
たとえばこのままだとnewfile.xlsxが存在していた時にアラートが出ます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。