• ベストアンサー

VB6からExcel出力し、ブックを閉じたとき異常終了

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

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

  • ベストアンサー
  • ykymtkt
  • ベストアンサー率51% (14/27)
回答No.1

objXls.Visible = True の後に objXls.UserControl = True を入れてみましょう。 自信はないのですが。 あと、VBのSP5とOffice97SR2を入れましょう。

mfuku
質問者

お礼

ご返答ありがとうございます。 しばらく、ネットにアクセスできない環境におりましたので、ご返答が遅れました。 実は、質問の投稿の直後に、下記の米国MS社の対応策(英語)を見つけまして解決しておりました。 おっしゃる通りの原因・対処法でした。 http://support.microsoft.com/support/kb/articles/Q158/8/95.ASP

その他の回答 (2)

  • yamahati
  • ベストアンサー率0% (0/2)
回答No.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で質問しようとしていたところです。

  • hydeen
  • ベストアンサー率0% (0/1)
回答No.2

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

mfuku
質問者

お礼

ご返答ありがとうございます。 原因は#1の通りでした。 Set objSheet = Nothing Set objBook = Nothing Set objXls = Nothing については、これを入れても現象は変わりませんのであえて、省略して問題カ所を最小限で書かせていただきました。

関連するQ&A