OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

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

  • すぐに回答を!
  • 質問No.142500
  • 閲覧数283
  • ありがとう数2
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 65% (80/123)

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
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.1
レベル8

ベストアンサー率 51% (14/27)

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

お礼率 65% (80/123)

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

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

http://support.microsoft.com/support/kb/articles/Q158/8/95.ASP
投稿日時 - 2001-10-10 14:15:55
-PR-
-PR-

その他の回答 (全2件)

  • 回答No.2
レベル2

ベストアンサー率 0% (0/1)

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

Set objSheet = Nothing
Set objBook = Nothing
Set objXls = Nothing
お礼コメント
mfuku

お礼率 65% (80/123)

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

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

については、これを入れても現象は変わりませんのであえて、省略して問題カ所を最小限で書かせていただきました。
投稿日時 - 2001-10-10 14:27:34


  • 回答No.3
レベル6

ベストアンサー率 0% (0/2)

私も類似の現象で困っています。便乗質問ですが、参考になれば。 VB6で、 Dim wkbObj As Workbook Sub main()  newdata = InputBox("A1に入力するデータをどうぞ") Set wkbObj = GetObject("C:\WINDOWS\デスクトップ\adodata.xls") wkbObj.W ...続きを読む
私も類似の現象で困っています。便乗質問ですが、参考になれば。
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で質問しようとしていたところです。
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ