質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

1回答

3903閲覧

シートの保存(マクロ実行シート除外)

coko1

総合スコア276

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2016/09/14 07:37

編集2016/09/14 08:57

選択したexcelのシートをコピーして作業を行うマクロを組んでいます。コピーしたexcelのシートを保存する時、マクロ実行用シート(シート名:マクロ実行)を除いたシート全部をを1つの新規BOOKに保存し、その後、マクロを実行しているexcelのマクロ実行用シート以外のシートを削除したいのですが...どういった方法をとればよいでしょうか。

1.指定のシートを除くすべてのシートを保存する方法
2.指定のシート以外のシートの削除する方法

どちらかでもわかる方教えていただけると嬉しいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

別のブックに移動したいシートのシート名を配列に格納して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が存在していた時にアラートが出ます。

投稿2016/09/14 09:14

imutakaoru

総合スコア356

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問