[[20040702162917]] 『Excel終了でアプリケーションエラー』(バロシュ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『Excel終了でアプリケーションエラー』(バロシュ)

VBAからApplication.Quit、ActiveWorkbook.Close、Sheets("sheet1").Delete
を使用してworkbookを落とそうとすると

「エラーが発生したため、excel.exeを終了します。プログラムをもう一度開始する必要があります。」

となり強制終了されてしまいます。落とそうとしているワークブックにはボタンや
テキストボックスなどのオブジェクトが多数設置されています。
私のPCだけ発生せず、他の人のPCでは発生します。
(アドインや参照設定の違いはありません。)

        ThisWorkbook.Saved = True

        If Workbooks.Count <= 1 Then
            Application.Quit          ← エラー発生箇所
        Else
            ThisWorkbook.Close (False) ← エラー発生箇所
        End If

環境は以下のVersionで統一されています。

 [エクセルのバージョン]
  Excel97 SR-2
 [OSのバージョン]
  Windows2000 Pro

原因がわかる方がいらっしゃいましたらお教えください。


 >VBAからApplication.Quit、ActiveWorkbook.Close、Sheets("sheet1").Delete
 >を使用してworkbookを落とそうとすると

 ここの説明の意味が良く分かりません。

 「workbookを落とそうとすると」←これは・・?

 

   (INA)

 >「workbookを落とそうとすると」←これは・・?
 Excelのワークブックを終了するとという意味です。

 (バロシュ)

 >Sheets("sheet1").Delete
 ↑これだと、

 >Excelのワークブックを終了するとという意味です。
 ↑これを出来ないと思います。

 ある特定のブックだけの問題なら、ファイルの破損のおそれがあるので
 新規ブックにコピペでデータを移して
 ブックを作り直すことをお勧め致します。

  (INA)

 >>Sheets("sheet1").Delete
 >↑これだと、
 >>Excelのワークブックを終了するとという意味です。
 >↑これを出来ないと思います。
すみません。これは間違いでした。
ThisWorkbook.Close SaveChanges:=Flase
の部分でエラーになっているようです。

あれから色々試してみたのですが
どうやらシート上にテキストボックスやボタン等のオブジェクトを
一定数以上設置し、
ThisWorkbook.Close SaveChanges:=Flase
の処理を行うとエラーになってしまうようです。

現在エクセルのシート上には70個ぐらいのオブジェクトが設置されているため
オブジェクトを削って対応するのは無理があります。。。

う〜ん、フォームに作り変えるしかないですかね…。

ご回答有難うございました。

(バロシュ)


 >現在エクセルのシート上には70個ぐらいのオブジェクトが設置されているため 
 シート上にたくさんのActiveXコントロールを配置すると、
 いろいろな不具合が発生することは有名です。

 コントロールツールボックスとシートは、とても相性が悪いので、
 安定性を考えてユーザーフォームの利用をお薦めいたします。

  (INA)


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.