[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『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.