
VBを記述した親ワークブックから子ワークブックを作成したいのですが、下記コードでは次の障害があるのです。
1.2003バージョンでは開けない。
2.2007バージョンで開こうとすると、メッセージが出る。
「~ファイル拡張子が示す形式と異なります。~」
3.不要なワークシートが残る。
“基本設定/新しいブックの作成/ブックのシート数”に依存している。
【シートを1枚だけにし、2003バージョンで保存したいのです。】
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"
Set WSH = Nothing
Set objWorkBook = Nothing
新しいブックを作成後、シート数を数えて2枚目以降を消すのも出来るかと思いますが、作成時には既に1枚、しかも2003バージョンで作成する事は可能なのでしょうか?
皆様、よろしく御教示下さいませ・・・。
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
///
以上です。
こんばんわ♪
早速のご回答ありがとうございます♪
動作良好でございます。
追加して頂いた所は、全くの勉強不足でした。どの様に調べればたどり着けるやらも・・・
SaveAsは一応見ていたのですが、、、ファイルフォーマットが選べるとわOrz
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) Excel VBA シートを追加後に余分なシートを削除する、の意味 21 2022/05/19 22:46
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- Visual Basic(VBA) VBA This Workbookモジュールを別ファイルにコピーする方法 1 2022/09/14 01:51
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/03/28 14:52
- Visual Basic(VBA) vbaの構文の修正相談(xmlファイルを順に開いてコピペ作業) 1 2023/04/22 01:18
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルマクロで任意のファイ...
-
VBA シートをコピーする際に Co...
-
エクセルVBAが途中で止まります
-
別ブックをダイアログボックス...
-
VBA 別ブックからコピペしたい...
-
フォルダ内の全てのファイルに...
-
Excelのマクロコードについて教...
-
VBAの参照先のファイル名をセル...
-
VBAで別のブックにシートをコピ...
-
Excel (2013) VBAでもし最大表...
-
[Excel]ADODBでNull変換されて...
-
ACCESSVBA からExcelの他ブック...
-
【ExcelVBA】インデックスが有...
-
VBA コードを実行すると画面が...
-
エクセル VBA 他シートの行を選...
-
Excel-VBAでのファイルの開き方
-
ワイルドカード「*」を使うとう...
-
ADOで複数のBookから抽出
-
【ExcelVBA】zip圧縮されたCSV...
-
エクセルのマクロを使ってメー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートをコピーする際に Co...
-
VBA 別ブックからコピペしたい...
-
別ブックをダイアログボックス...
-
エクセルVBAが途中で止まります
-
ワイルドカード「*」を使うとう...
-
【Excel VBA】書き込み先ブック...
-
VBAで別ブックのシートを指定し...
-
【ExcelVBA】zip圧縮されたCSV...
-
VBAで別のブックにシートをコピ...
-
VBA コードを実行すると画面が...
-
Excel2007VBAファイルの表示に...
-
VBAで複数のブックを開かずに処...
-
[Excel]ADODBでNull変換されて...
-
Excelファイルを開くとき、読み...
-
VBA 実行時エラー 2147024893
-
Excelマクロ 該当する値の行番...
-
Excel にて、 リストボックスの...
-
VBS Bookを閉じるコード
-
複数のエクセルファイルとシー...
-
【ExcelVBA】インデックスが有...
おすすめ情報