VBA ActiveXコントロールが使えない オブジェクトを挿入できません を解決する方法

VBAでActiveコントロールが使えなかったり、挿入した時に「オブジェクトを挿入できません」と出る場合の解決方法です。

ActiveXコントロールが反応しない

ある日、Excelファイルを開き「マクロ実行のボタン」を押したところ、何も反応せず・・・というか押せない。

むむむ???

おかしいな、こないだまで使えていたのに・・。他のActiveXコントロール系のオブジェクトもまったく反応せず・・・。

仕方なく、再挿入しようと試みると、今度は「オブジェクトを挿入できません」のエラーが!

ActiveXコントロール オブジェクトを挿入できません

これはこまった。

というわけで、ここでは VBAでActiveコントロールが使えなかったり、挿入した時に「オブジェクトを挿入できません」と出る場合の解決方法 を紹介します。


ActiveXコントロールの種類

ActiveXコントロールには、これだけの種類があります。

ActiveXコントロールの種類

  • コマンドボタン
  • コンボボックス
  • チェックボックス
  • リストボックス
  • テキストボックス
  • スクロールバー
  • スピンボタン
  • オプションボタン
  • ラベル
  • イメージ
  • トグルボタン

これが全部使えない(削除して再挿入もできない)となると、実に困った!・・・と思って調べていると、どうも 2014/12/10 に実施した Windows Update によるものだとわかりました。マイクロソフトによると ActiveXコントロールの脆弱性により、リモートでコードが実行される ということで今回のパッチが適用されたようです。

Excelバージョン更新プログラム
Excel2007KB2596927
Excel2010KB2553154
Excel2013KB2726958

対策方法

まずは Windows Update によってセキュリティ更新プログラムを削除してみましたが、後日の Windows Update で再びこの削除したファイルがインストールされてしまいました。そのため、一時的な対策にしかならないので、この方法はおすすめできません。

マイクロソフトが正式な手順を公開しましたのでそちらを実施しましょう。

http://support2.microsoft.com/kb/3025036/ja

その方法は、Temp から 「MSForms.exd」 というファイルを消すというものです。

こちらの環境は Windows7, Office2010 です。

C:/ユーザー/{ログインユーザーID}/AppData/Local/Temp」へ移動します。

Cドライブに Windows をインストールした場合です。

Tempへ移動

ちなみに、エクスプローラーのアドレスバーに「%Temp%」と入力すると Temp フォルダーへ一気に移動します。

Tempへのショートカット

次に、アドレスバー右の検索ボックスに「MSForms.exd」と入力します。

検索ボックスに「MSForms.exd」と入力

すると、結果が出てきますので、このファイル選択して右クリックでを削除します。

MSForms.exdの検索結果

この「MSForms.exd」は、VBA を使用するときに、新しいコントロールを使うと自動的に再作成されるものです。なので、消したからといって Office の動作には影響しませんのでご安心を。

では、押せなかったボタンを押してみましょう!

ActiveXコントロールが反応した

やった!反応しました!!

これでもダメな方は、以下のアドレスでも「MSForms.exd」を検索してみてください。

  • %appdata%microsoftforms
  • %temp%excel8.0
  • %temp%word8.0
  • %temp%PPT11.0
  • %temp%vbe

参考サイト

おつかれさまでした。

この記事がお役に立ちましたら シェア をお願いいたします。