エクセルファイルを新規に作成してシートを1つにして保存するには

解決


vbクリップ  2005-05-24 13:49:04  No: 90007  IP: [192.*.*.*]

エクセルを新規に作成しデータを書き込んで保存したときに
ブック内のシートが3つになっているんですが、
これを1つにして保存する方法はありますか?
以下コード
Dim xlApp   As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet

Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Add
Set xlSheet = xlBook.Worksheets(1)
xlSheet.Name = "Test050524"

'〜書き込み処理省略〜

xlBook.SaveAs "C:\TEST\test.xls"
xlApp.Quit

Set xlSheet = Nothing
Set xlBook = Nothing
Set xlApp = Nothing

宜しくお願いします。

編集 削除
papa  2005-05-24 14:26:50  No: 90008  IP: [192.*.*.*]

EXCELメニューのツール→オプション→新しいブックのシート数を
3から1に変更すれば直ります。

規定値を変えるのか嫌なら
Set xlBook = xlApp.Workbooks.Add
のあと
Sheet2 と Sheet3 を削除すれば出来ます

編集 削除
ちょっと  2005-05-24 14:45:30  No: 90009  IP: [192.*.*.*]

直接関係ないですが
http://www.int21.co.jp/pcdn/vb/noriolib/vbmag/12/vbcom/
を参考にされてみたらいかがでしょう。

アーリーバインドとレイトバインドがごっちゃになっています。

Dim xlApp   As  New Excel.Application

又は

Dim xlApp   As   Excel.Application
set xlAPP = New Excel.Application

又は

Dim xlApp   As   object
Set xlApp = CreateObject("Excel.Application")

編集 削除
じゃんぬねっと  URL  2005-05-24 15:38:44  No: 90010  IP: [192.*.*.*]

シートがある文、For で回して削除する。
それだけなのでは?

編集 削除
vbクリップ  2005-05-25 14:56:31  No: 90011  IP: [192.*.*.*]

papaさん ちょっとさん じゃんぬねっとさん 
レス ありがとうございました。
シートを削除することで解決いたしました。

編集 削除
魔界の仮面弁士  2005-05-25 15:26:55  No: 90012  IP: [192.*.*.*]

作成前に、.SheetsInNewWorkbook プロパティを変更しておく手も。

編集 削除
vbクリップ  2005-05-26 14:41:40  No: 90013  IP: [192.*.*.*]

魔界の仮面弁士さん 遅くなりましたが、ありがとうございました。

シートを削除すると、シートを削除するときにメッセージボックスが
あがって見た目が悪かったんですが、魔界の仮面弁士さんの助言どおり
やってみると、見事メッセージボックスも出なく希望どおりの動作ができました。

編集 削除
特攻隊長まるるう  2005-05-26 14:59:40  No: 90014  IP: [192.*.*.*]

>シートを削除すると、シートを削除するときにメッセージボックスが
>あがって見た目が悪かったんですが
それはそれで別の回答が(^^;)
[VB6.0]
        xlApp.DisplayAlerts = False
        シート削除処理
        xlApp.DisplayAlerts = True

編集 削除