- ベストアンサー
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
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
objXls.Visible = True の後に objXls.UserControl = True を入れてみましょう。 自信はないのですが。 あと、VBのSP5とOffice97SR2を入れましょう。
その他の回答 (2)
- yamahati
- ベストアンサー率0% (0/2)
私も類似の現象で困っています。便乗質問ですが、参考になれば。 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)
異常終了が解消するかどうかは分かりませんが、 使用済オブジェクトを明示的にNothingしてますか?(Excelに限らず) アプリケーションを終了させても、Excel自体のProcessが システムに残ったままになっているとおもいます。 そのままだと実行する度にリソースを累積的に消費してまいます。 Set objSheet = Nothing Set objBook = Nothing Set objXls = Nothing
お礼
ご返答ありがとうございます。 原因は#1の通りでした。 Set objSheet = Nothing Set objBook = Nothing Set objXls = Nothing については、これを入れても現象は変わりませんのであえて、省略して問題カ所を最小限で書かせていただきました。
お礼
ご返答ありがとうございます。 しばらく、ネットにアクセスできない環境におりましたので、ご返答が遅れました。 実は、質問の投稿の直後に、下記の米国MS社の対応策(英語)を見つけまして解決しておりました。 おっしゃる通りの原因・対処法でした。 http://support.microsoft.com/support/kb/articles/Q158/8/95.ASP