世の中そんなもの

日々の生活のどーでも良さそうなことに悩みが尽きない人の備忘録。ただの日記だよ。

Excel ActiveXコントロールの挿入「オブジェクトを挿入できません」というエラーの対処法

(前置き)

現在勤めている会社は未だにアナログな会社なので、ソフトとかアプリは買ってもらえません。業務のメイン担当者が手書きで帳簿をつけてるので、導入しても意味ないんですよね・・・(つまり導入できない)。仕方ないので、私は、独学で毛の生えたくらいの VBA 知識を駆使して Excel 処理を自動化、少しでも業務を楽に、、とちまちま頑張ってます。意外と、便利な VBA ができると、これいいじゃん!最高 ♪ と、ひとり満足。誰も褒めてくれないのがちょっと虚しい(でも自分は楽になる)。

 

(現象)

入力ミスを減らす為に、記入欄を ON/OFF できる ActiveXコントロールチェックボックスと、一括処理のマクロを組み合わせてるところで、以前から時々エラーが起こります。さっきまで正常動作してたチェックボックスが、突然チェックできなくなるのです。

大抵は Excel 再起動でエスケープ出来てたけど、今回はできない。再起動しても、バックアップファイルをひっぱり出してコピーしても、エラーになる。なんでよ(小1時間)。

 

(解決)

あまりに「急に動かなくなるチェックボックスにチェックできない)」ので、仕方ないから最初から作り直しか、とやろうとしたら、そもそも、ActiveXコントロールが挿入できない事がわかりました。

とても親切なサイトさんで一応解決。ありがとうございます。

ExcelのActiveXコントロールの挿入で「オブジェクトを挿入できません」というエラーになる場合の対処: 小粋空間

ActiveXコントロールを挿入しようとすると「オブジェクトを挿入できません」というエラーのなるので、親切サイトさんの言う通りに、エクスプローラーで「.exd」という拡張子のファイルを検索。Cドライブの、User フォルダ以下の、AppData の中に2つありました。サクッと「.exd」ファイルを削除して Excel を再起動したら OKになりました

ところが、組み合わせているマクロ(該当ファイルを開いてない場合は、ファイルを開く)を動かすと、再び「.exd」ファイルが同じ場所に作成されてしまい、エラーに・・・。

仕方ないので、該当ファイルを開きっぱなしにしてマクロを動かしたら OKでした。やや、取り敢えずな解決になったけど(マクロの作り方が悪いっぽい?)、自分メモとして記録しておきます。

 

ExcelActiveXコントロールの挿入で「オブジェクトを挿入できません」というエラーになる場合、

「.exd」という拡張子のファイルを User¥AppData から検索して削除しましょう。

以上。

 

 

2023年8月追記)

この記事を書いた後もしばしば同じ現象が起きます。やめてほしい。

今回は、前日の夕方に動いていたプルダウンが動作しなくなり・・・この記事を見返して、USER フォルダ以下から .exd を検索 ⇒ 削除。

・・・したのに直ってない!

困ったな。ところが、同じ作りのファイルを試したら、プルダウンは正常動作。ActiveX コントロールも挿入可。特定のファイルだけが、「オブジェクトを挿入できません(動作も不可)」という事態に。

改めて Web 検索やらした結果、更新プログラムの再インやらOfficeの修正やら出てきたけど、違うよね、特定ファイルのみの現象だし、数時間前は問題なかったんだし…。

ということで、.exd ファイルを、今度は、C ドライブから検索することに。

出てきました。さっきも検索した User フォルダ以下なんだけど・・・

更新日時的にはついさっき。なにもしてないけどなぁ?

取り敢えず、この2つを削除 ⇒ 動作しました!・・と思ったらまた出来なくなる。このファイルを、開くだけで .exd ファイルが作成されてしまうみたいな。何故;

なぜこのファイルがそうなってしまったのか、原因がわからないので仕方なく、数日前のバックアップファイルを使う事にしました。データの貼付けとか面倒だけど仕方ない。

.exd ファイルは、Excel 全体で使うものではなく、特定ファイルに紐づくファイルなんでしょうかね?

 

2023年8月追記2)

同じ現象がしばしば起きます。状況は直近と同じ、開くだけで .exd が作成されてしまう。

今回は、別名で保存、をやってみました。そうしたら、解消されました(別名保存したまったく同じファイルだけど、.exd は作成されず、動作してくれた)。

特定操作によって、.exd が作成されるファイルになってしまうのか。なにかも動作が kill されずにファイルを開く度に動くのかな??わかりません・・・。