一部のユーザーについては、2014年12月のアップデートをインストールした後、Forms Controls(FM20.dll)が期待どおりに機能しなくなりました。フォームコントロールを使用して既存のVBAプロジェクトでファイルを開くとき、フォームコントロールを新しいワークシートに挿入するとき、またはこれらのコンポーネントを使用するサードパーティソフトウェアを実行するときなど、問題が発生することがあります。
次のようなエラーが表示される場合があります。
「オブジェクトを挿入できません」「オブジェクトライブラリが無効であるか、見つからなかったオブジェクト定義への参照が含まれています」
また、コードを介してワークシートのメンバーとしてActiveXコントロールを参照しようとすると、ワークシート上のActiveXコントロールのプロパティを使用または変更できなかったり、エラーを受け取ったりする場合があります。
アップデート後の手順:
この問題を解決するには、クライアントコンピューターのキャッシュされたバージョンのコントロールタイプライブラリ(拡張ファイル)を削除する必要があります。これを行うには、ファイル名拡張子が「.exd」のファイルをハードディスクで検索し、見つかったすべての.exdファイルを削除する必要があります。これらの.exdファイルは、次回VBAを使用するときに新しいコントロールを使用するときに自動的に再作成されます。これらのエクステンダーファイルはユーザーのプロファイルの下にあり、次のような他の場所にある場合もあります。
%appdata%\ Microsoft \ forms
%temp%\ Excel8.0
%temp%\ VBE
スクリプトソリューション:
この問題は複数のマシンに影響を与える可能性があるため、EXDファイルを削除するスクリプトソリューションを作成し、ポリシーを使用してログオンプロセスの一部としてスクリプトを実行することもできます。必要なスクリプトには次の行が含まれている必要があり、.exdファイルはユーザー固有であるため、ユーザーごとに実行する必要があります。
del%temp%\ vbe \ *。exd
del%temp%\ excel8.0 \ *。exd
del%appdata%\ microsoft \ forms \ *。exd
del%appdata%\ microsoft \ local \ *。exd
del%appdata%\ Roaming \ microsoft \ forms \ *。exd
del%temp%\ word8.0 \ *。exd
del%temp%\ PPT11.0 \ *。exd
追加の手順:
上記の手順で問題が解決しない場合は、テストできる別の手順(以下の警告を参照):
完全に更新されたマシンで、.exdファイルを削除した後、編集権限でExcelでファイルを開きます。
Visual Basic for Applicationsを開き、コードモジュールにコメントまたは何らかの編集を追加してプロジェクトを変更し、[デバッグ]> [VBAProjectをコンパイル]をクリックします。
ファイルを保存して再度開きます。解像度をテストします。解決した場合は、この更新されたプロジェクトを追加のユーザーに提供します。
警告:この手順で問題が解決した場合は、この更新されたプロジェクトを他のユーザーにデプロイした後、これらのユーザーもシステムに更新を適用し、.exdファイルも削除する必要があることに注意してください。
これで問題が解決しない場合は、別の問題である可能性があり、さらにトラブルシューティングが必要になる場合があります。
マイクロソフトは現在この問題に取り組んでいます。更新についてはブログをご覧ください。