オートメーションエラーが発生します。
【Excel VBAについて】
「オートメーションエラーです。」という内容のエラーに悩まされています。
原因が分かりません!
といいますのも、起こる場所、起こるタイミングなどが定まっておらず、
同じ場所でも起こる時と起きない時があり、さらに複数箇所でおきます。
ただ一つ共通しているのは、フォームのメソッド、または、プロパティ(Visible、Hide、Showなどさまざま)を
使用しているところで発生しております。
しかし、エラーメッセージにて「デバッグ」を選択し、一度VBEを開くとそのあとは正常に
動くのです。動くなよって話です。
同じような事例についての質問を他のページなどで
調べてみましたが、改善、原因究明に至りません。
どこで起きるかわからないので、サンプルソースの載せようがないのですが、
《フロー》
ブック1を開く
↓
ブック1のフォーム1が開く
↓
ブック2を開く
↓
ブック2のフォーム1が開く
↓
ブック3を開く
↓
ブック3のフォーム1が開く
↓
ブック3から閉じていく
上記のフロー内のどこかで発生します。もちろん発生しない時もあります。
これが原因かは分かりませんが、
分かりませんが幽霊プロジェクトも発生しております。
ちなみに幽霊プロジェクトとは、エクセルアプリケーションは閉じたのにVBAプロジェクトが残ったままになっている状態のことをそう呼んでいるそうです。
ただこれにつきましては、別の質問でさせていただきます。
ですが、オートメーションエラーの改善が幽霊プロジェクトの改善につながるかもと思い
一応書かせていただきました。
現状はフォーム参照時に発生するエラーだとおもっているので
例外処理でキャッチして、もう一度ShowやHideをするという風に対応しておりますが
中々気持ち悪い流れなのでなくしたいです。
ご回答の程宜しくお願いいします。
追記
コードについてですが例えば
VBA
1 2'-------------------------- 3' フォーム内のボタンAクリックイベント 4'-------------------------- 5Private Sub btnA_Click() 6 7 ' 自フォームを隠す 8 Call Me.Hide ← デバッグするとここで止まっている 9 10 ' Bを表示 11 Call frmB.Show(vbModeless) 12 13End Sub
上記のような非常に単純なコードでも発生します。
コードに問題があるのかないのかというよりも
状況や、やっていることにそもそも問題があるのか、ないのか。
VBAでやるべきことではないのかなどをお聞きしたいと思っています。
・ブック1ではオープン処理でフォームAが開き、
フォームA内でボタンを押すと、フォームBに遷移し、フォームBにはフォームC,D,E,Fへ遷移するボタンがあります。
・ブック2ではオープン処理でフォームGが開きます。
・ブック3ではオープン処理でフォームHが開きます。
各ブックで開かれるフォームはそれぞれのブックのプロジェクトに所属しています。
今回はブック1のフォーム達を遷移しまくった後、閉じていくと上記のコードの場所でエラーが発生しました。
発生している問題・エラーメッセージ
「オートメーションエラーです。」
回答1件