• ベストアンサー

Excelマクロのオートメーションエラーについて

以前は良かったExcel2003で作成したマクロプログラムを1部修正して実行時に1回オートメーションエラーがでたら、修正部を元に戻してもオートメーションエラーがでるようになってしまいました。 このプログラムをExcel2007の他のPCで実行してもエラーはでません。 どのようにしたら、オートメーションエラーはでないようにできるでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

>単純に何で元に戻してもだめなのか、又、何でこのファイルを他のPCにコピーしてやれば、実行できるのでしょうか? 上位バージョンで使ったものは、下位バージョンに回しても、そのままの使えないことがあります。ふつうは、下位バージョンでも、外部のライブラリなどを更新していたりするのですが、必ずしもしていないことがあります。もちろん、外部ライブラリが壊れているということもあります。 解決のためにいくつかの方法をするしかないわけで、同じ経験がある人がピタリと当たることがありますが、こちらは、今のところ、何が問題なのか、それを特定する情報は出ていません。オートメーション・オブジェクトを生成するのは、1つだけではありません。本当に数多くあります。 可能性のある方法いくつか試してみていただくしかないのであって、結果オーライだと思います。 オートメーション・エラーというなら、Active Xやいくつかの外部タイプライブラリのはずです。 どこかの行で黄色く反転して、マクロが止まっているなら分かりやすいです。しかし、ランタイムエラーの場合は、プロシージャを直接触れるなら、それらを適当な行で、[ブレイクポイント]などを付けて、どこでエラーが発生するか、検証して行けば、通常、発生しているか見つかるはずです。仮に、数万行でも、上記のようなデバッグのテクニックを使えばそんなに大変なことではありません。 ただし、プロテクトされているなら、製作者にリクエストして、PCのメインテナンスを含めてみてもらわないといけないかもしれません。さっぱり分からないというなら、ベテランの人に頼むしかありません。 もともと、Excel 2003で動いていたというなら、VBAの内容を完全な最初の段階に戻せば動くはずだ、と考えるのは自然ではないでしょうか。前回、そういうことを書いたつもりなのですが……。それに対する反応はされませんでしたね。この考え方は間違っているとお思いでしょうか? 他にも、Office を修復してみるとか。Excelの場合は、ヘルプからアプリケーションの修復をしてみるとか。 いくつか実施してみてください。ただ、ピタリと当ててほしいというなら、私のほうからはもう回答できませんが、他の回答者のためにも、もう少し情報を出さないと難しいと思います。 ただ、外部ライブラリが壊れている場合は、VBAだけの知識では解決は不可能です。

その他の回答 (1)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

コードなしで、その原因を探すというと、かなり回答としては大雑把な範囲になると思います。かといって、細かなコードから判断するのも難しいですが。 まず基本的には、VBAプロジェクト自体は、上位互換はあっても、下位互換は期待しないほうがよいです。その場合は、今までのものは使えませんから、一端、マクロを削除して、マクロなしで保存して終了し、次にテキストベースでインポートするとか、貼り付けるなどして、やり直さないといけません。 オートメーション・エラーは、外部オブジェクト、つまり、dll などを利用している、ということですから、そのままでは解決しないこともあります。外部オブジェクトの中に不可逆のものがありますから、中にはOSの再インスール以外戻らないものもあります。 外部オブジェクトが壊れているとなると、その使っているプログラムを探し、Dependency Walker というプログラムを使って、元のエラーを出しているところを探さなくてはならないこともあります。このようなことになっていないことを望みます。

ganchan59
質問者

補足

早速の回答ありがとうございます。 確かにご指摘のように、コードを全部しめさなければ分からないのかもしれませんが、たいへんですし、単純に何で元に戻してもだめなのか、又、何でこのファイルを他のPCにコピーしてやれば、実行できるのでしょうか? 初心者ですので、教えて下さい。

関連するQ&A

  • エクセルでのオートメーションエラー

    たびたびお世話になっております。 excel2000のVBAでユーザーフォームを作成し、ユーザーフォーム上のコマンドボタンで処理を実行しています。処理はワークシート上の計算を実行したり、メールに添付し送信したり・・・です。この実行後にもう一度ユーザーフォームを開こうとすると、(ユーザーフォーム.show)まず、パス名が無効です、のエラー。ワークブックを保存し閉じようとすると(これもユーザーフォームのコマンドボタン)、オートメーションエラーです、となります。ユーザーフォームを閉じ、excelを終了しようとすると、EXCELは終了できません。となってしまいます。 なぜ?どーして?チンプンです。 ちなみにその後、もう一度同じワークブックを開こうとすると、使用中になり、 読取専用でしか開けません。 どうか、教えてください。

  • エクセルXPと2000でのマクロ

    初歩的な質問になりますがご存知の方は是非教えて下さいm(__)m EXCELXPでリストから並び替えのマクロを記録させてフォームボタンに登録したのですがそのマクロをEXCEL2000で開いて実行しようとすると「コンパイルエラー/プログラムまたはライブラリィがありません」とでて実行できません。 ボタンでなくメニューバーからマクロを実行すると実行できます。 番号の振り直しのマクロもフォームボタンからは上記同様できません。 でも●●シートへ戻るとか振り仮名を表示するとか非表示にするとかはフォームボタンからでも実行できます。 EXCEL2000で同じ操作のマクロを作ってフォームボタンに新たに登録しなおすとボタンからの実行が出来るようになりました。 VBA画面でみるとエラーの箇所に「DataOption1:=xlSortNormal」とでていて(こちらはEXCELXPで作ったマクロ)EXCEL2000で作ったマクロと比べると「Orientation:=xlTopToBottom」と出ていて違うみたいだなぁと・・・。 でも基本的にVBA画面はあまり分からないので、なんでボタンから操作するとエラーが出たのか分かりません。理由が分からないので修正もできません。(┰_┰) 2000とXPと両方で開くことが多いのでどちらでも実行できるような状態にしておきたいのですがどうしたらいいのでしょう?何故こんなエラーがでてしまうのでしょう?対策はどうしたらいいのでしょう? どうかご存知の方、宜しくお願いしますm(__)m 因みにEXCEL2000のPCのOSは98でEXCELXPのPCのOSはXPです。

  • Excel実行時エラー-2146959355?

    windows7 64bit 、Excel2010の環境のPCに、とあるアプリケーションがあります、このプログラムはコマンドを実行すると、附属されてるExcelテンプレート(マクロがあるxlt)を開き、Excelファイル(xls)を作成する仕組みなのですが、実行すると「visual Basic(タイトル) 実行時エラー -2146959355(8008005)サーバーの実行に失敗しました。」が出ます。考えられる原因は何なのでしょう?(今回はじめて使います) 大変恐縮なのですが、よろしくお願いします。

  • Excelオートメーションについて

    こんにちは。 VC++6.0 Excelオートメーション操作を行っています。 Excel内で、セルのコピー&ペーストをたくさんする プログラムなので、本プログラムの処理中に、 他でクリップボードを更新する操作(文字列のコピー&ペーストなど)を行うと、 Excel内のコピー&ペースト処理がおかしくなってしまいます。 これらはVBAなどにも言えることなのかもしれませんが、 Excelのセルをコピー&ペーストする処理を行っている最中は、他でクリップボードを更新する操作を行ってはいけないものなのでしょうか。 アプリ側で何かしら回避策はあるのでしょうか。 (Excel内でコピー&ペーストを使わず、全て直入力する、、ということは抜きにして…) 宜しくお願いします。 Windows XP Pro SP2

  • Excel2003でマクロが動かなくなった!

    Excel97で作成されたVBAマクロがあるのですが、 Excel2000とExcel2002までは問題なく動いていたものの、 Excel2003では実行途中でエラーが発生してしまいました。 VBAマクロには上位互換が無いのでしょうか?? 自分はマクロに詳しくなく使用する立場なのですが、 マクロを作成した人が既に退職している為、 修正できる人間がおりません。。 何か簡単な方法で回避できる方法は無いものでしょうか? 宜しくお願い致します。

  • エクセルのマクロについて

    エクセルのマクロを作成したのですがプログラムを実行しようとすると毎回マクロを実行するかどうか聞かれます。 無条件でマクロを実行するように設定はできないでしょうか?

  • Excel VBAでオートメーションエラーがでる

    いつもお世話になっております。 Sheets("修正シート").Select Application.DisplayAlerts = False ActiveSheet.Delete Application.DisplayAlerts = True Sheets("箇所見る").Select Range("A1").Select 上記のところで実行エラー オートメーションエラーです。 とメッセージがでます。 何がいけないのでしょうか? よろしくお願い致します。

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

    こんにちは。palbanです。 現在VBからACCESSにデータを保存するシステムを作成しています。 VBからACCESSの接続にはADOを使用しています。 バージョンはVB6.0SP5,ACCESS2002です。 このシステムをAPI関数のSENDMESSAGEを使用して終了させているのですが、システム終了後以下のような メッセージがでます。 実行時エラー'-2147417848(80010108)': オートメーションエラーです。 起動されたオブジェクトはクライアントから 切断されました。 このエラーの回避方法をご存知の方ご教授願います。 私の方でも調査しましたが修正方法がどうしても わかりません。 宜しくお願いします。

  • エクセルのマクロについて

    エクセルのマクロを作成したのですがプログラムを実行しようとすると毎回マクロを実行するかどうか聞かれます。 いちいち実行するかどうかを聞かれず無条件でマクロを実行するように設定はできないでしょうか?

  • オートメーションエラーって表示がでます。PC壊れたのでしょうか?

    オートメーションエラーと表示がでてしまうのですが、何が悪いのか全く分かりません。PC壊れたのでしょうか? 表示されるのは、、、 実行時エラー′-2147024770(8007007e)′: オートメーションエラーです。 指定されたモジュールが見つかりません。 と表示されます。どうすればいいのでしょうか? 何かをインストールすればいいのでしょうか? わかる方よろしくお願いします。

専門家に質問してみよう