最新閲覧日:

Win98 FirstEdition
VB6 SP3
Excel97 SR1

上記の環境において、下記のソースのように、VBからExcelを起動してデータを出力した際、Excelのブックを閉じると、「保存しますか?」の「はい」「いいえ」関わらず、あるいはブックをセーブした後閉じても、Excelが異常終了してしまいます。
ブックではなく、Excel自体を閉じた場合は全く問題ありません。

どなたか対処法をご存じな方いらっしゃいませんか?

Dim objXls As Object
Dim objBook As Object
Dim objSheet As Object

Set objXls = CreateObject("Excel.Application")
objXls.Workbooks.Add
objXls.Visible = False
Set objBook = objXls.ActiveWorkbook
Set objSheet = objBook.Worksheets(1)

(中略)
objXls.Visible = True

A 回答 (3件)

私も類似の現象で困っています。

便乗質問ですが、参考になれば。
VB6で、
Dim wkbObj As Workbook
Sub main()
 newdata = InputBox("A1に入力するデータをどうぞ")
Set wkbObj = GetObject("C:\WINDOWS\デスクトップ\adodata.xls")
wkbObj.Worksheets(1).Range("A1").Value = newdata
wkbObj.Close
End Sub

これでExcelを起動せずにadodata.xlsの内容を書き換えたところ、
次にExcelで開いても開かず、エラー表示も無い状態になります。
仕方無いので、IEからファイルを開くで開くとExcelが起動してadodata.xlsが
開きます。これを上書き保存すると、Excelで開いても見えるようになります。
なぜか、どうすれば良いか判らず、Gooで質問しようとしていたところです。
    • good
    • 0

異常終了が解消するかどうかは分かりませんが、


使用済オブジェクトを明示的にNothingしてますか?(Excelに限らず)
アプリケーションを終了させても、Excel自体のProcessが
システムに残ったままになっているとおもいます。
そのままだと実行する度にリソースを累積的に消費してまいます。

Set objSheet = Nothing
Set objBook = Nothing
Set objXls = Nothing
    • good
    • 0
この回答へのお礼

ご返答ありがとうございます。
原因は#1の通りでした。

Set objSheet = Nothing
Set objBook = Nothing
Set objXls = Nothing

については、これを入れても現象は変わりませんのであえて、省略して問題カ所を最小限で書かせていただきました。

お礼日時:2001/10/10 14:27

objXls.Visible = True の後に


objXls.UserControl = True を入れてみましょう。
自信はないのですが。
あと、VBのSP5とOffice97SR2を入れましょう。
    • good
    • 0
この回答へのお礼

ご返答ありがとうございます。
しばらく、ネットにアクセスできない環境におりましたので、ご返答が遅れました。

実は、質問の投稿の直後に、下記の米国MS社の対応策(英語)を見つけまして解決しておりました。
おっしゃる通りの原因・対処法でした。

http://support.microsoft.com/support/kb/articles …

お礼日時:2001/10/10 14:15

このQ&Aに関連する最新のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード


このカテゴリの人気Q&Aランキング

おすすめ情報

カテゴリ