- 締切済み
[ マクロ ] エラーになったりならなかったりする
マクロがエラーになったり、ならなかったりします。 エラーメッセージは、[ 起動されたオブジェクトはクライアントから切断されました。 ] で、 エクセルが固まってしまい、タスクマネージャーから強制終了をして、 再度動かすと動きます。 また、検索をして、下記フォルダ内を削除したりしましたが、 あまり変化はないようです。 C:\Users\ユーザー名\AppData\Local\Temp 1000行×12列ほどのシート(文字と数字)が10シートほどなので、 それほど重いとも思えません… デバックでひっかかる(黄色く変わる)のは、下記コードの この部分です。 ●ひっかかる部分 Selection.Insert Shift:=xlToRight ●コード(コピーして、挿入貼り付けをしている) Dim ABC As Worksheet Set ABC = ActiveSheet Sheets("tagハリカ").Select Columns("T:W").Select Selection.copy ABC.Select Columns("F:F").Select Selection.Insert Shift:=xlToRight Range("F2").Select 3回に1度ほどひっかかるので、この部分のコードだけを別にして、 下記エラー実験用のマクロをつくりましたが、 これでも、同じエラーが出ることがあります。 ●実験マクロ1 ※ アクティブシートをaという名前に変えました Sub エラーのための実験() Sheets("tagハリカ").Range("T:W").copy Sheets("a").Range("F:F").Insert Shift:=xlToRight End Sub → 5回目くらいに、オートメーションエラーが出て、(先ほどと同じエラーメッセージ) 下記部分が黄色くなります。 Sheets("a").Range("F:F").Insert Shift:=xlToRight ☆ どのようにしたら、スムーズに動いてくれるのでしょうか… どうぞ、よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- WindFaller
- ベストアンサー率57% (465/803)
#1で書き忘れましたが、 Excelの起動した状態で、タスクマネージャーで調べてみてください。 (タスクマネージャーの起動の仕方は、ネットで調べてください。) 起動していたら、立ち上がる原因を探さなくてはなりません。 もうひとつ、別のExcelが出ていませんでしょうか? 他にも、VBEditorの中の、ツール--参照設定にエラーはないでしょうか? また、COM-Addin は、ステルスで設定されていませんでしょうか? 代表例は、googleツールです。 (COM-Addinは、オプションの中のアドインのCOMアドインという項目があります。)
- WindFaller
- ベストアンサー率57% (465/803)
こんにちは。 >[ 起動されたオブジェクトはクライアントから切断されました。 ] この問題は、出されたマクロのコード自体の問題ではないようです。 使用環境等が書かれていませんが、原因としては、何らかのオブジェクトが、マクロ・コードとの関連性が途切れた後に、再び、オブジェクトに命令を掛けた時に出る、C言語のエラーのようです。 そもそもオートメーション・エラーが発生するというのは、エクセルを、オートメーション化させているか、別にオートメーション・オブジェクトが存在しているという状況にも感じられます。(オートメーション化というのは、Excelなどを常駐化させておくことです) また、リモートでも同様の反応が出ることもあるようです。 ここに同じような問題の対処法が書かれています。 http://support.microsoft.com/kb/319832/ja 問題が発生したときの対処法 内容は、難しいかもしれませんし、内容がズバリあたっているとも思えませんが、とりあえず、掲示しておきます。 ** 専門的な内容で分かりにくいと思いますが、「プロジェクト」というのは、モジュールの全体つまり、ブックなどについている「VBA機能」のことです。しかし、ブックそのものですと、「参照リストから Office タイプ ライブラリを削除した後、再度プロジェクトをコンパイルします。」という項目は実行できません。 ** ただ、ご質問者さんの環境に該当するか分かりません。 モジュールとしては、どこに置いてあるものでしょうか? 通常、エクセルは少し特殊で、標準モジュールに置くようになっています。 Sub エラーのための実験() Sheets("tagハリカ").Range("T:W").copy Sheets("a").Range("F:F").Insert Shift:=xlToRight End Sub コードとしては、個人的にはうまくないと感じますが、ここの回答者の中には、同じようなコードをチュウチョせずに書いていますから、それほど、エラーを出すものでもないように思います。 ただ、直感的に、コードをみて感ずるのは、どこかに別のコードを書いている、ということと、それが邪魔していないか、ということです。ブックを新しくしても、当該マクロだけを置いて同様になりますでしょうか?