• ベストアンサー

Excelのシート→ブック

Excelのシート→ブック Excelに複数のシートがある状態です。 そのシートを個別のファイル名=シート名で一発で個別のブックにする方法はありますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • hige_082
  • ベストアンサー率50% (379/747)
回答No.5

Sub Macro1() Dim sh As Worksheet For Each sh In Worksheets sh.Copy ActiveWorkbook.SaveAs Filename:=sh.Name Workbooks(sh.Name & ".XLS").Close Next sh End Sub

その他の回答 (5)

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.6

No.4です。 失礼、新しいブック名を元ファイル名+シート名にする…と、勘違いしていました。シート名をそのままブック名でいいんですね。 7行目の sBookname(0) & "_" & を削除してください。  

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.4

マクロでやるとしたらこんな感じかな? サンプルなのでエラー処理等入っていません。 Sub Sample()  Dim Sht, sBookname  Application.ScreenUpdating = False  sBookname = Split(ThisWorkbook.Name, ".")  For Each Sht In Worksheets   Sht.Copy   ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & sBookname(0) & "_" & Sht.Name & "." & sBookname(1)   ActiveWindow.Close  Next Sht  Application.ScreenUpdating = True End Sub

  • avanzato
  • ベストアンサー率54% (52/95)
回答No.3

こんにちは。 エクセルの機能ではそのようなシステムはありません。 やるなら次のような方法があります。 ファイル名:Testfile.Xls シートは以下の4つ 管理用 Sheet1 Sheet2 Sheet3 の環境で標準モジュールに下記コードを追加し実行すると シート「管理用」以外のシートを個々のファイルとして保存します。 保存するファイル名はシート名を使います。 保存先はTestfile.Xlsと同じフォルダです。 Testfile.Xlsがデスクトップ上にあるのならばデスクトップに Sheet1.Xls~Sheet3.Xlsが作成されます。 Sub Sample()   Dim FilePath As String   Dim MyName As String   Dim ObjWorkSheet As Worksheet   Dim SheetNm As String   FilePath = ActiveWorkbook.Path & "\"   MyName = ActiveWorkbook.Name   For Each ObjWorkSheet In Worksheets     SheetNm = ObjWorkSheet.Name     If SheetNm <> "管理用" Then       Sheets(SheetNm).Copy       Application.DisplayAlerts = False       ActiveWorkbook.SaveAs Filename:=FilePath & SheetNm & ".xls"       Application.DisplayAlerts = True       ActiveWorkbook.Close     End If   Next   MsgBox ("完了") End Sub

  • MRT1452
  • ベストアンサー率42% (1391/3293)
回答No.2

地道にマクロを組むしかないです。

  • akiomyau
  • ベストアンサー率43% (555/1280)
回答No.1

EXCEL自身にはそういった設定機能は用意されていません。

関連するQ&A