• ベストアンサー
  • 困ってます

【マクロ】エクセル 複数のsheet ファイル分け

いつもお世話になります。 エクセル2003で、下記記述のマクロにて、 一つのファイルにまとまった3つのsheetを個別の ファイルにするよう、使用してました。 エクセル2013でもこのマクロは利用できるのですが、 xlsでなく、xlsxで作成されてしまうため、 どのようにこのマクロを書き変えると、xlsで実行される ようになりますでしょうか。 この記述以外でも問題ございません。 どうか、どなたかお知恵を拝借できると幸いです。 マクロ----------------------- sub macro1() dim s as worksheet for each s in worksheets s.copy activeworkbook.saveas s.name activeworkbook.close false next end sub --------------------------

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数417
  • ありがとう数1

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

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

Excel 97-2003 ブック形式で保存する様に指定します。 activeworkbook.saveas s.name ↓ ActiveWorkbook.SaveAs s.Name, FileFormat:=XlFileFormat.xlExcel8

共感・感謝の気持ちを伝えよう!

質問者からのお礼

お礼が遅くなり申し訳ございませんでした。 当サイトのどこをクリックしてもお礼入力画面が出ずに困っておりました。 ご教示頂いたマクロを再度利用しようとしたらお礼がまだだったことを思い出しました。 大変助かりました。ありがとうございました。

関連するQ&A

  • エクセル マクロのこの意味教えて

    初心者で済みませんが 下記のマクロの意味を行ごとに教えてください。 Dim bk As Workbook Set bk = ActiveWorkbook Dim st As Worksheet For Each st In bk.Sheets Workbooks.Add st.Copy Before:=ActiveWorkbook.Sheets(1) ActiveWorkbook.SaveAs path & st.Name & ".xls" ActiveWorkbook.Close Next 以上です

  • ファイル すべてのシート 値だけ 別のシート

    ファイルAのすべてのシートに関数式が含まれています。 このシートを別フォルダーに分割し書き出すことは出来たのですが 関数式まで貼り付けられます。 これを値のみにしたいのですがご教授御願いします。 マクロはこれです。 Sub シート分割() Const path As String = "C:¥" Dim bk As Workbook Set bk = ActiveWorkbook Dim st As Worksheet For Each st In bk.Sheets Workbooks.Add st.Copy Before:=ActiveWorkbook.Sheets(1) ActiveWorkbook.SaveAs path & st.Name & ".xls" ActiveWorkbook.Close Next End Sub

  • エクセルのマクロについて

    エクセルで写真帳を作成してるのですが、 保存容量が大きいため、下記のマクロをコピペしたのですが 画像は消えてしまい困ってます。 (1)どなたか下記のマクロ解読お願いします。 (2)それと、新しく保存すると、jpegの画像が消えてしまい  どうしたらよいかわからない。 (3)ボタンを作成してまして、これも消したい。  オブジェクト削除なのかなぁ? わがまま言ってすいません。自分には無理なんでお願いします。 Option Explicit Sub Macro1() Dim SheetCount As Integer Dim i As Integer Dim fname As String Dim Ws As Worksheet Dim OrgWorkBook As Workbook Dim NewWorkBook As Workbook SheetCount = Worksheets.Count ChDir "C:\Documents and Settings\たかじん\デスクトップ" fname = Application.GetSaveAsFilename _ (, "Microsoft Excel ブック (*.xls), *.xls") If fname = "False" Then Exit Sub Set OrgWorkBook = ActiveWorkbook Workbooks.Add (xlWBATWorksheet) Set NewWorkBook = ActiveWorkbook For i = 2 To SheetCount Sheets.Add after:=Worksheets(Worksheets.Count) Next OrgWorkBook.Activate i = 1 For Each Ws In Worksheets Ws.Cells.Copy Destination:=NewWorkBook.Sheets(i).Range("A1") i = i + 1 Next NewWorkBook.Activate ActiveWorkbook.Close True, fname ChDir Application.DefaultFilePath

  • エクセル マクロについて

    エクセルのマクロについて教えてください。 下記のようなマクロを実行した場合 どのような条件でフォルダ内のファイルを オープンしていくのでしょうか。 ファイルの名前や更新時間などでしょうか? また、名前や更新時間順でファイルを開いていくように するにはどうしたらよろしいでしょうか。 ご回答よろしくお願い致します。 以下マクロ 'オブジェクトを設定する Set ファイルシステム = CreateObject("Scripting.FileSystemObject") '読み込むファイルを1個指定する あるブック = Application.GetOpenFilename("Excelファイル(*.xls),*.xls") '親フォルダーを取得する Set 親フォルダー = ファイルシステム.GetFile(あるブック).ParentFolder '親フォルダー内の全ファイルに以下の操作をする For Each ファイル In 親フォルダー.Files 'ファイルを開く Workbooks.Open ファイル.Path 'ブック名を記憶する ブック名 = ActiveWorkbook.Name '開いたファイルの伝票(NO)のシートを「全データ」シートの後ろにコピーする ActiveWorkbook.Worksheets("伝票(NO)").Copy After:=ThisWorkbook.Worksheets("全データ") '開いたファイルを閉じる Workbooks(ブック名).Close Next                                                 以上

  • Excel マクロのsaveasでファイル保存の方法で教えて下さい

    Excel2003で、USBメモリ上の2つのファイル(マクロを保存したmacro.xls及び作業を行うsagyo.xls)を開き、マクロをかけて、最後にxlsファイル形式で上書き保存したいのですが、 (1)ActiveWorkbook.Save で、上書き保存を行うと、なぜかUSBメモリ上にhtmlファイル保存されてしまいます。このため、xlsファイル形式保存をあえて明示し、saveasの既定値であるxlWorkbookNormalを指定し、 (2)ActiveWorkbook.SaveAs , FileFormat:=xlWorkbookNormal とすると、(カレントフォルダである)マイドキュメントに保存されてしまいます。 Q1.(1)のようになる原因は何でしょうか? Q2.USBメモリは、他のPC環境でも使うので、「saveas "F:\sagyo.xls"」などとドライブ指定せずに使いたいのですが、USBメモリ上に上書き保存するマクロの書き方はないでしょうか?

  • エクセルVBA【ワークシートのコピー】について

    以下のVBA記述で、とあるエクセルファイルのシートをCSV化しようとしております。記述の場合、すべてのワークシートが対象となっていますが、10個くらいあるWorkSheetの【sheets(8)】のみを対象としたいのですが、どのようにしたら良いのでしょうか? お手数ですがご教授下さい。 Sub test() Dim sh As Worksheet Dim fname As String Application.ScreenUpdating = False For Each sh In ActiveWorkbook.Worksheets fname = "C:\temp\" & sh.Name & ".csv" sh.Copy With ActiveWorkbook .SaveAs Filename:=fname, FileFormat:=xlCSV .Close savechanges:=False End With Next sh Application.ScreenUpdating = True End Sub

  • エクセルと同じファイル名でcsvを作成するマクロ

    エクセルからCSVファイルをYYMMDD付でマクロを使って 作ろうとしていますが拡張子の「.xls」がどうしても残ってしまいます。 例えば、「test.xls」が「test.xls070326.csv」のように。 これを「test070326.csv」とするにはどうしたらよいでしょう。 今のコードはつぎのようにしています。 Sub test1() Dim flname As Variant Dim wb As Workbook flname = ActiveWorkbook.Name + CStr(Format(Date, "yymmdd")) ActiveSheet.Copy ActiveSheet.SaveAs Filename:=flname, _ FileFormat:=xlCSV ActiveWindow.Close savechanges:=False ActiveWorkbook.Close End Sub これでもCSVとしては使えるのですが、気持ちがすっきりしません。 どなたか正解をお願いします。

  • エクセルマクロ初心者です。教えてください。

    エクセルマクロ初心者です。 仕事で使うエクセルにマクロを本をまねたりウェブで調べたりして見よう見まねで組んでみました。 稟議書ナンバー(L1)をファイル名として別フォルダに保存してそのまま閉じるマクロを作成できたのですが、別フォルダに保存したときに一緒にマクロも保存されてしまいます。 マクロは保存せずに別フォルダに稟議書シートのみ保存したいのですがどのようにすればよいのでしょうか。 以下がファイル保存のマクロです。 Sub booksave() ' ' booksave Macro ' マクロ記録日 : 2009/3/30 ユーザー名 : ' ' Dim myFileName As String '稟議No. myFileName = Range("l1").Value '稟議No.を変数に取得する ChDir "F:\稟議書" Sheets("表").Copy ChDir "F:\稟議書\稟議書保存" ActiveWorkbook.SaveAs Filename:="F:\稟議書\稟議書保存\" & myFileName & ".xls", FileFormat:= _ xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _ , CreateBackup:=False ActiveWorkbook.Close End Sub どうぞよろしくお願いいたします。

  • マクロExcel2003日付を付けてファイルを保存

    Excel2003でマクロを利用して、日付を付けた形でファイルを保存するようにしたいです。 条件としては、 (1)ファイルをz:\に「【ここに日付を八桁で保存】File1.xls」とする 例えば、20111127File1.xls (2)上書きする場合も、確認をせずに強制的に保存 (3)保存が終わったら、強制的にExcel2003を終了する という具合に書きたいです。 マクロの保存でやってみてわかっている所まで書きました。 Sub SaveEnd() ActiveWorkbook.SaveAs Filename:="Z:\【????】file1.xls", FileFormat:=xlNormal   【上書き保存で、確認をしない】   【Excel2003の強制終了】 End Sub どのように調べれば良いかも含めて、ご指導をいただければ幸いです。

  • エクセルのマクロについて教えてください。

    エクセルのマクロについて教えてください。 エクセルの各シートごと一気にシート保護したいという質問に対して下記の回答が来ました。 Sub macro1() ’全シート一括保護 Dim W As Worksheet For Each W In Worksheets W.Protect ("1234") ’パスワード1234 Next W End Sub Sub macro2() ’全シート一括保護解除 Dim W As Worksheet For Each W In Worksheets W.Unprotect ("1234") ’パスワード1234 Next W End Sub 上記はプログラムで全てて入力でやらないとできませんか?マクロボタンから操作して上記のように設定する方法は ありませんか? 英語が苦手です。 また大文字、小文字が間違っても設定はできないのでしょうか?スペースも1行あるのとないのでは 意味が違うのでしょうか? 上記の意味を教えてください。 宜しくお願い致します。