質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

1回答

5659閲覧

オートメーションエラーについて

julia1993

総合スコア8

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2018/05/12 10:53

編集2022/01/12 10:55

オートメーションエラーが発生します。

【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のフォーム達を遷移しまくった後、閉じていくと上記のコードの場所でエラーが発生しました。

発生している問題・エラーメッセージ

「オートメーションエラーです。」

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2018/05/12 11:46

タグにExcelもVBAも入っているのでタイトルに入れる必要はないですよ。
coco_bauer

2018/05/12 13:56

コードが判らないのでは検討を始めることさえできませんから、とにかくエラーを起こした実際のコードを質問についかしてください。できれば、複数のコードをついかしてください。
ExcelVBAer

2018/05/14 01:15

ブック自体をダウンロードできるようにしなければ、試しようがない。PC環境によって起こっている可能性もある。実物を用意しないのなら、誰も手助けなどできない。
guest

回答1

0

確かな事は言えないのですが、私も同様のエラーに遭遇したことがあり、
その時の対処方法をシェアしますので参考にしてみてください。
(事象が改善できなかったらごめんなさい)

・ご質問の事象発生原因(想定)
複数ののブックを開いている状態で、フォアグラウンドにないブックに対して操作する場合に、
Excelアプリケーションがバックグラウンドにないブックをうまく処理できず、エラーが発生している。

・改善方法
操作したいブックの処理を実施する前に Activate プロシージャを呼出し、
操作したいブックをフォアグラウンドに移動する。

※また、この手の問題は、メモリが関係しているようで、
複数のブック・シートなどの操作時に当問題が発生する場合は、
Activateを試して見ると直ることが多いようです。

※MSにこの問題について述べているページを以前見つけたのですが、
ちょっとすぐに見つからなかったのでもし見つけたら添付します。すみません。

投稿2018/05/18 02:19

yamashita_yuich

総合スコア316

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

julia1993

2018/05/19 11:39

ご丁寧なご回答ありがとうございます。 また、気付くのが遅くなってしまい申し訳ございません。 一度Activateを入れて様子を見てみます。 結果は追ってご報告させていただきます。 MSのページの件ですが、もし見つかりましたらご連携宜しくお願い致します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問