• ベストアンサー

EXCELの複数シートをそれぞれ別ブックへ保存したい

EXCEL97を使用しています。 1つのブック内に複数のシート(10~20枚)があります。 これを全て1シートずつの別のブックに分けて保存をするマクロを作成したいのですが、できますでしょうか? できれば各シート内の(A4)に入力されている文字列を各ブックの名前として使用したいのですが・・・。 (各シートのセルA4の値に重複はありません) 現在は各シートを新しいブックにコピーして名前を付けて保存、の作業をシート数分繰り返しています。 すみませんがよろしくお願いいたします。

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

  • ベストアンサー
  • tbobi
  • ベストアンサー率45% (544/1189)
回答No.3

s_chikayoさん こんばんは。 こちらも参考にしてください。 各シートをコピーし新規ブックとして保存して閉じます。 元のブックは開いたまま残ります。 保存先を変える場合は、ChDirのカッコ内を変えてください。なお、指定したフォルダが存在しないとエラーになります。 Sub SheetCopy()   Dim ShtCnt As Integer, i As Integer   ShtCnt = ActiveWorkbook.Worksheets.Count   i = 1   '保存場所を指定   ChDir ("C:\TEST\")   Do     Sheets(i).Activate     Sheets(i).Copy     ActiveWorkbook.Close savechanges:=True _     , FileName:=ActiveSheet.Range("A4").Value & ".xls"     i = i + 1   Loop Until i > ShtCnt End Sub

noname#202481
質問者

お礼

お返事遅くなりましてすみません。 大変参考になりました。ありがとうございます。

noname#202481
質問者

補足

自宅のWindows98マシンでは問題なく動きましたが、会社のNTでは保存場所の指定がうまくできませんでした。(^_^;) 保存したいフォルダにあらかじめマクロを置いておいてChDir~の行を抜いておけば支障はないので、とりあえず業務上は助かりました。

その他の回答 (2)

  • VT250F
  • ベストアンサー率30% (26/84)
回答No.2

マクロなら何でもできますよ。 試しに、録音ボタン(赤い丸印)を押して、 マクロを生成するとよろしかろう。 あとは、シート名を取得する関数などを利用して、 for - next あたりでループする。・・・ この言葉がわかるようになると、中級です。 だいたい、なんでもこなせるようになります。 わからなければ、書店でその手の本を、 立ち読みでもすれば、よろしいでしょう。 健闘を祈ります。

noname#202481
質問者

お礼

お返事遅くなりましてすみません。 ありがとうございます。勉強します。

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

こんにちは。 対象ブックにマクロを仕込むなら、こんな感じでも良いかと。 最後に対象ブックはシート1枚だけになります。 Sub aaa() Dim i As Integer For i = Worksheets.Count To 2 Step -1  Worksheets(i).Move  ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" _         & ActiveSheet.Range("A4") & ".xls"  ThisWorkbook.Activate Next i End Sub

noname#202481
質問者

お礼

お返事遅くなりましてすみません。 大変参考になりました。ありがとうございます。

関連するQ&A