• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセル VBA 新しいブックを作成したいのです。)

エクセル VBAで新しいブックを作成する方法と障害対策

このQ&Aのポイント
  • エクセル VBAを使用して新しいブックを作成する方法について説明します。必要なコードを記述することで、親ワークブックから子ワークブックを作成することができます。しかし、2003バージョンでは開けない、2007バージョンで開こうとするとエラーメッセージが表示されるなどの障害があります。また、作成時に不要なワークシートが残ってしまうことも問題です。この記事では、これらの障害に対する対策方法も解説します。
  • エクセル VBAで新しいブックを作成する方法として、親ワークブックから子ワークブックを作成するためのコードを提供します。さらに、2003バージョンや2007バージョンの対応方法も解説します。また、ワークシートの数を調整する方法も説明します。この記事を参考にして、効果的な新しいブックの作成方法を実現しましょう。
  • エクセル VBAを使用して新しいブックを作成する方法について説明します。親ワークブックから子ワークブックを作成するために必要なコードを提供します。また、2003バージョンと2007バージョンでの違いや、不要なワークシートが残る問題についても解説します。この記事を読んで、新しいブックの作成に関する知識を深めましょう。

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

  • ベストアンサー
  • cj_mover
  • ベストアンサー率76% (292/381)
回答No.1

こんにちは。 3行追加、1行変更(書き足し)です。 .SaveAs メソッド については、一応、VBAヘルプ目を通しておいてください。 ///   'Dim nShInNWB As Long ' ●   ' ' 新しいブックを開いた時のシート数   ' ' 後で元に戻す為に変数に記録   nShInNWB = Application.SheetsInNewWorkbook ' ●   ' ' 新しいブックを開いた時のシート数を指定   Application.SheetsInNewWorkbook = 1 ' ● ShName = ThisWorkbook.ActiveSheet.Name Set objWorkBook = Workbooks.Add objWorkBook.ActiveSheet.Name = "○○商事" Call 処理 Set WSH = CreateObject("Wscript.Shell") Path = WSH.SpecialFolders("Desktop") & "\" ''On Error Resume Next '上書き保存をキャンセルした時の取り合えずの回避策(宿題(^^;)) ''ActiveWorkbook.SaveAs Path & "○○系_" & ShName & ".xls"   ' ' Excel2003互換、.xlsで"名前を付けて保存"   objWorkBook.SaveAs Filename:=Path & "○○系_" & ShName & ".xls", FileFormat:=xlExcel8 ' ●   ' ' 新しいブックを開いた時のシート数を元に戻す   Application.SheetsInNewWorkbook = nShInNWB ' ● Set WSH = Nothing Set objWorkBook = Nothing /// 以上です。

mayu1992
質問者

お礼

こんばんわ♪ 早速のご回答ありがとうございます♪ 動作良好でございます。 追加して頂いた所は、全くの勉強不足でした。どの様に調べればたどり着けるやらも・・・ SaveAsは一応見ていたのですが、、、ファイルフォーマットが選べるとわOrz