• ベストアンサー

シート毎に保存

1つのブックに50以上のシートがあります。 シート名をブック名(ファイル名)として、シート1枚ごとに 保存するマクロを教えて下さい。 マクロ自体分からない者ですが、

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

  • ベストアンサー
  • BlueRay
  • ベストアンサー率45% (204/453)
回答No.2

書き換える場所は、 SvPath = "" ←このままだと、「My Documents」に保存されます。 を保存したい場所に書き換えるだけで後は全て自動でやってくれます。 例: SvPath = "D:\MyDocs\分割\" (最後に「\」はつけてくださいね。) '---------- 貼り付けるソースはココから ---------- Sub SheetSave()   Dim i As Integer   Dim j As Integer   Dim SvPath As String   Dim BookName As String   Dim SheetName As String   Application.ScreenUpdating = False   Application.DisplayAlerts = False   SvPath = ""   For i = 1 To ActiveWorkbook.Worksheets.Count     BookName = ActiveWorkbook.Name     SheetName = ActiveWorkbook.Worksheets(i).Name     Workbooks.Add     Workbooks(BookName).Sheets(SheetName).Copy Before:=Workbooks(2).Sheets(1)     For j = Workbooks(2).Worksheets.Count To 2 Step -1       Workbooks(2).Sheets(j).Delete     Next     Workbooks(2).SaveAs Filename:= _       SvPath & Workbooks(BookName).Sheets(SheetName).Name & ".xls", FileFormat:=xlNormal, _       Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _       CreateBackup:=False     Workbooks(2).Close   Next   Application.DisplayAlerts = False   Application.ScreenUpdating = False End Sub '---------- 貼り付けるソースはココまで ---------- ソースの貼り付け方は、No1さんを参考してもらえばOKです。 ちなみに、VisualBasicEditorの起動は「Alt」を押しながら「F11」で出来ますよ。

toyohei
質問者

お礼

有り難うございます。 BlueRaiと#1さんと結果は同じになるのだと思います。 やってみます

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

回答No.3

#1の補足です。 8行目あたりの Filename:="C:\_Ann's\Zone_1\" の部分は、 toyohei さんの実際のパスに置き換えてください。

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

分割したいブックを呼び出し、[Alt]キーを押しながら [T],[M],[V],[I], [M] の順にキーを押してください。 Visual Basic Editor のモジュール画面が表示されますので、画面右半分の 空白領域に、次の英文コマンドをコピー・貼り付けしてください。 なお、4行目の"4"は、ブック内のシート枚数です。実際の数字に置き換えて ください。 '------- コピーは 次行から ------------ Sub Sheet2Book() Application.ScreenUpdating = False NMB = ActiveWorkbook.Name For L = 1 To 4 Sheets(L).Select NMS = ActiveSheet.Name Sheets(NMS).Copy ActiveWorkbook.SaveAs Filename:="C:\_Ann's\Zone_1\" & NMS & ".xls", FileFormat:= _ xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _ , CreateBackup:=False ActiveWorkbook.Close False Windows(NMB).Activate Sheets(1).Select Next L Application.ScreenUpdating = True End Sub '------- コピーは 前行まで ------------ コピーしたら VBEditor 画面を終了してエクセル画面に戻します。 で、[ツール]-[マクロ]-[マクロ] から Sheet2Book を選択して[実行]。 以上です。 ※上記マクロ4行目で実際の枚数より多い数字を指定して実行するとエラー  メッセージが出ます。  この場合は[終了]をクリックしてください。これでも処理は完了しています  ので、気にしなてOKです。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • シートだけを保存したいのですが?

    はじめましてマクロ初心者です。 検索しましたがわからなかったので、質問させていただきます。 保存をキャンセルすると新規ブックができてしまいます。 キャンセルした時に新規ブックを作りたくないのですが、教えてください。 Sub シート保存() Dim Answer3 Dim 既定ファイル名 As String Dim 保存ファイル名 As Variant Answer3 = MsgBox("本当に保存しますか?", vbYesNo) If Answer3 = vbYes Then Sheets("保存シート").Select Application.CutCopyMode = False Sheets("保存シート").Copy Else MsgBox ("キャンセルしました。") End If 既定ファイル名 = Range("V8") 保存ファイル名 = Application.GetSaveAsFilename(既定ファイル名) If 保存ファイル名 = False Then MsgBox "保存は中止されました。" Else ActiveWorkbook.SaveCopyAs 保存ファイル名 End If End Sub よろしくお願いします。

  • エクセルのマクロを使ってシートごとに名前をつけて保存したい

    マクロ初心者です。宜しくお願いします。 1つのブックにシートが複数あります。 それぞれシートをコピーして新しいブックを作成し そのブックに名前をつけて保存したいです。 例えばブック名が「売上管理」でそのシートが「A店」「B店」「C店」と3シートあるとします。 シート名:A店を他のブックにコピーしてマイドキュメントに名前を付けて 保存する場合のマクロを教えてください。 ちなみにその際のブック名は「シート名+任意のセル(D2)」と できれば一番助かります。 ちなみにD2のセルにはToday関数が入ってます。

  • エクセルシートをファイル名+シート名で保存したい

    エクセルのブック内にある複数のシートを分割して保存するとき ブック名+シート名.xlsx とファイル名を付けて保存する方法があれば教えていただけないでしょうか。 よろしくお願いします。

  • エクセルのシート1枚だけ保存するマクロ

    いつもお世話になります。 エクセルのシート1枚だけを別ファイルに保存したいのです。 過去ログを見て、そのサブをモジュールに貼り付けて試しているのですが、うまく行きません。 アドバイスをお願いします。 状況は以下の通りです。 シート1に帳票のフォーマットを作成してあります。 シート2にデータが並んでいます。 シート2のデータを順番にシート1に表示して印刷するマクロは作成しました。ただセルの値をコピーするだけなので単純です。 そのシート1だけを保存したいのです。 Sheet1.SaveAs (ファイル名) だとブック全体が保存されてしまいます。 ワークブックの保存になっていてもいいのですが、内容はシート1だけを保存したいのです。 シート1にはイメージコントロールが3個あり、画像も入れ替わりますが、式は入っていません。 ファイル名は帳票の個別名称を使用しますので重複はしません。 シート名にしなければならない場合でも処置できます。 皆様の助言をお願いいたします。 エクセル2003を使用しています。

  • EXCELのシートのマクロ操作について

    EXCELについて質問がありまして、よろしくお願いします。 複数のシートがあるブックがあり、それを、それぞれシートごとに別のブックにしたいと思っています。 マクロやVBAなどを使って簡単に出来るものでしょうか? マクロ集などのサイトを探してみましたが、上手く見つけることができませんでした。 シート名をブック名として引き継いで保存できればベターだと思っております。それが出来なくてもブックとして起こせれば大丈夫です。 何かわかられましたらお教えいただけますと幸いです。 どうぞよろしくお願いします。

  • エクセルの特定のシートのみを保存するマクロ

    を作成できればと思っています。 このブック内にはたくさんのシートがあります。 毎日データ更新するのですが、そのうち1シートのみ、他の人に送信する必要があるので、たとえば(理想は)編集が済んだ時点で、あるシートに設けたコマンドボタンのようなものをクリックしたときに、その必要な1シートがコピーされて、別のエクセルファイルとして保存されるのが理想です。 マイドキュメント内の、「ファイル」という名前のファイルに保存をしたいと思っています。 今は、必要なシートのシート名をクリックして、コピーを選び、新しいシートを作成して、、、という作業をしています。これを端折ることができないか、と考えております。 なお、このシートを保存するとき、そのシート名は、ある特定のセルの入力値になることが理想です。 というのも、そのマクロが起動するたびに、全く同じ名前で上書き保存されていくのは困りますので、、、 どなたかお詳しい方がいらっしゃいましたらどうぞお願いいたします。

  • エクセルマクロで任意のファイル名をつけて保存したい

     エクセルVBAについての質問です。  エクセルのマクロで、Aというファイルを開いて、そのうち必要なワークシートだけを抽出し、新しいブックに移動し、その新しいブックを新しいブックのsheet1のセルC2の文字列をファイル名として保存するようなマクロをくみたいと思っています。  ファイルを開いて必要なワークシートだけを抽出し、新しいブックに移動するところまではできましたが、新しいブックのセルC2の文字列をファイル名として保存することができません。FNを変数として宣言して、C2の文字列を代入し、FNをファイル名として保存しようとすると、ファイルにFNという名前が付いてしまいます。どうすれば、C2の文字列をファイル名として保存できるのでしょうか。なお、保存するフォルダはc:\変換ファイル\6月です。どなたか教えてください。よろしくお願いします。

  • 上書き保存しかできないようにできますでしょうか

    何度もすみません、こちらで質問させていただいた者です。 http://okwave.jp/qa3987988.html ブックを保存するときに、絶対にファイル名を変えられないようにできますでしょうか。 上書き保存はできるけれども、名前を変えて保存はできないようなイメージです。 ブックを上書き保存するSaveメソッドを使って保存してからファイルを閉じるような マクロを実行させる感じかとも思ったのですが、ファイルメニューから 「名前を変えて保存」もできないようにしたいのです。 そんなことはできますでしょうか。

  • 一つのシートだけ保存することはできないのでしょうか

    アクセスの場合はフォームだけ保存することはできますが エクセルの場合は一つのシートだけ保存することはできないのでしょうか? ブック丸ごと保存されてしまいます。 一つのシートだけ保存したい場合は、 新たに別ファイルを作り、そこに移動させるしかないですか?

  • エクセル:シートを保存するマクロ

    あるエクセルファイルFile.xls内に、4つのシートSheet1,Sheet2,Sheet3,Sheet4があるとして、 4つのシートを個別にcsvファイルとして保存するようなマクロを作りたいです。 ▼ソースです  (ここまでのコードで、Pathに保存先のディレクトリ名を取得する部分があるとお考えください)  Filename = "Sheet1" '保存するシート名は、Sheet1~4 GoSub Save1 Filename = "Sheet2" GoSub Save1 Filename = "Sheet3" GoSub Save1 Filename = "Sheet4" GoSub Save1 '保存完了後は、File.xls内Sheet1のCells(4, 1)にカーソルを配置。 Sheets("Sheet1").Select Cells(4, 1).Select Exit Sub Save1: Sheets(Filename).Select fname = Path & "\" & Filename & ".csv" ActiveWorkbook.SaveAs Filename:=fname, FileFormat:=xlCSV, CreateBackup:=False Return End Sub 以上のソースで実行すると、 指定したディレクトリにsheet1.csv、sheet2.csv、sheet3.csv、sheet4.csvの4ファイルができます。 ここまでは問題ないのですが、 マクロを実行後、Sheet4.csv(最後に保存したファイル)が開かれた状態になってしまいます。 しかも、ファイル名はSheet4.csvなのに、シートSheet1~4を持っている状態です。 普通にSheet4.csvファイルを開くと、シートはSheet4しかありません。 状態が伝わるでしょうか? File.xlsのマクロを実行しているので、実行完了後もFile.xlsを開いておきたいのですが、 どのような記述を加えればよいでしょうか? マクロ(VBA)は使い始めたばかりなので説明されても理解できないかもしれませんが、 できればよろしくお願いいたします。

このQ&Aのポイント
  • ヌーベル470を使用して薄手のレザーを縫う際に目が飛んでしまう場合、適切な針を選ぶことが重要です。
  • 薄手のレザーには特に細い針が適しており、レザーに穴を開けずにすべるような針を選ぶと良いでしょう。
  • また、針の種類だけでなく、糸の選び方や縫い方にも注意が必要です。詳細な情報はブラザー公式FAQをご参照ください。
回答を見る

専門家に質問してみよう