- ベストアンサー
エクセルのワークシート
エクセルのブックをワークシート一枚ずつ別々に保存する方法はありますか?教えてください!
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
1.当該ブックの任意のシート見出しを右クリックから[移動またはコピー] を選択 2.[移動先ブック名]ボックス内で“(新しいブック)”を選択 3.下の“コピーを作成する”にチェック入れ 4.[OK]をクリック して出来上がった(1枚のシートのみの)ブックを[名前を付けて保存]すればよろしいかと。 他のシートも上の操作を繰り返すだけ。 でも、こちらの方が超簡単です。 1.当該ブックで1枚のシートのみを残して、他の全てのシートを削除 2.[名前を付けて保存] この操作をシートの数だけ繰り返す。
その他の回答 (1)
- imogasi
- ベストアンサー率27% (4737/17069)
多数のシートを一括して一度でやる方法(VBA) (A)対象とするブック (B)一時的なブック(BBB.xls) (C)保存される(された)ブック((A)のシート名と同じブック名) を考えます。 (B)は最低1つのシートのブックでよく、そのシート名は(A)のシート名と同じものは無い、ようにする。内容は空白としておく。 (B)の最低1つのシート名はaaaとする。 (A)はもちろん(B)も開いておく。 (A)の標準モジュールに、下記を貼り付け、(A)をアクチブにして、 実行する。 Sub test01() Dim sh As Worksheet For Each sh In ActiveWorkbook.Worksheets MsgBox sh.Name sh.Copy before:=Workbooks("bbb.xls").Worksheets("aaa") Workbooks("bbb.xls").SaveCopyAs sh.Name & ".xls" sn = sh.Name Workbooks("bbb.xls").Worksheets(sn).Delete Next End Sub これでシート数だけ、シート名のブックができる。 ブックbbbのシート名snの削除をしても良いかと毎シートごとに聞いてくるので、削除をクリック。 上記コードの初めに Application.DisplayAlerts = False 終わりに Application.DisplayAlerts = True をいれるとそれらは防げる。 もう少しましな方法があるかもしれないが、少してこづって時間がかかり、これで上げます。
お礼
ずっと放置したままにしてあり大変申し訳ありませんでした。参考になりました。ありがとうございます。