『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)