Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 7 Professional : Excel 2013)
ユーザーフォームのボタン操作でオートメーションエラー
投稿日時: 17/10/10 22:00:13
投稿者: にゃすを

お世話になります。
同じOSで同じExcelのバージョンの2台のPCにおいて
片方だけ、オートメーションエラーとなってしまう現象が起きて
ネットでもいろいろ調べてみたのですが分かりませんでした。
 
ブレークポイントでエラー位置を探っていったのですが
ユーザーフォーム上のボタンを押した瞬間に下記エラーが発生し、
(ボタンクリックのイベント内の最初の行にブレークポイントを
 設定してもブレークしません)
デバッグを確認しようとしても、Excelが強制的に終了してしまいます。
「実行時エラー'-2147417848(80010108)
 オートメーションエラーです。
 起動されたオブジェクトはクライアントから切断されました」
 
PCの問題でしょうか・・何か設定の問題でしょうか、
ご教示よろしくお願いします。
 

回答
投稿日時: 17/10/10 22:38:21
投稿者: WinArrow
投稿者のウェブサイトに移動

原因は、分かりませんが、
私も何度か遭遇します。(Excel2007環境で、拡張子:xlsですが・・)
  
私の対処方を紹介します。
  
 (1)当該モジュール(UserForm1)をエクスポートします。
(2)上書き保存します。
(3)上でエクスポートしたモジュールをインポートします。
(4)上書き保存します。
  
この方法でOKになるという保証はありませんが、試してみる価値はあると思います。
 
 

投稿日時: 17/10/11 12:38:42
投稿者: にゃすを

WinArrow様
 
早々のご回答ありがとうございました。
 
いろいろあって 返信が遅くなり申し訳ありませんでした。
 
半信半疑ながら仰せの通り行ってみると
うまくいきました☆
本当に感謝です、ありがとうございました。
 
しかし なぜ そのような方法にたどり着いたのですか?
私の知識では到底たどり着かなかったと思うのですが
宜しければ ぜひ この方法を試してみたお考えというか
思想を聞いてみたいです、今後のために。。
 

回答
投稿日時: 17/10/11 13:31:46
投稿者: WinArrow
投稿者のウェブサイトに移動

一般的にファイルの作成とHDDのファイル容量との関係
新しくデータを追加すれば、ファイル容量は増えます。
データを削除すれば、ファイル容量が減る・・・と思いがちですが
削除した領域を参照しないようにしているだけで、実際は、減りません。
 
これはVBAコードもデータですから、同じことが言えます。
また、コードを変更することもありますが、変更前の領域はそのままで、変更後の内容を新しい領域に書き出します。
つまり、追加しても、変更しても、ファイル容量は増え、削除してもファイル容量は減りません。
で、使わなくなった領域には、使わなくなったコード(ごみ)が残ります。
 
メモリに展開している時も同じことです。
 
そのごみが影響して、このようなエラーが出るものと推測しています。
確かめることができないので、あくまでも私の推測です。
 
エクスポートすると、そのごみ部分がなくなります。
ごみ部分がなくなった状態でインポートします。
・・・結果的にファイル容量が減ることになります。
 
その後、コードの修正をすると、また新たなごみができますから、定期的にお掃除をした方がよいと思います。
 
 
 

投稿日時: 17/10/11 14:46:44
投稿者: にゃすを

WinArrow様
 
ご丁寧にご教示ありがとうございました。
非常に分かりやすく 理解できました。