現象
セル編集モード中に Microsoft Excel が Automation アドインを読み込むと、Excel は失敗します。 この問題は、要求が Excel に読み込まれた Automation アドインでのみ発生します。
原因
この問題は、アドインがフォームまたはダイアログ ボックスを表示する場合、またはアドインが Excel の状態を変更しようとする Automation 要求を Excel に行った場合に、アドインが読み込まれたときに発生する可能性があります。 次の一覧には、セル編集モード中に Automation アドインが読み込まれている間に Excel が呼び出されたときに Excel が失敗する可能性がある Automation 要求のサンプルが含まれています。
-
プログラムによって現在の選択内容を変更します。 以下に例を示します。
Application.ActiveSheet.Range("A1").Select -
Windows コレクション内の項目のプロパティまたはメソッドを呼び出します。 以下に例を示します。
Application.ActiveWindow.Zoom = 200
-
計算モードなどの Excel 設定を変更します。 以下に例を示します。
Application.CalculationMode = xlManual
これらの項目はすべて、Excel 環境、ブック、またはワークシートを変更しようとするコード試行の例です。編集モードでは、これらの種類のアクションは許可されません。
解決方法
アドインの読み込み中は、上記のアクションを試さないでください。 読み込み中に呼び出されるアドイン メソッドには Initialize メソッドが含まれます。また、Automation アドインで IDTExtensibility2 インターフェイスが実装されている場合は、OnConnection メソッドと OnStartupComplete メソッドも実装されます。
状態
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。
詳細情報
問題を再現する手順
-
Visual Basic で新しい ActiveX DLL プロジェクトを開始します。
-
[プロジェクト] メニューの [Project1 プロパティ] をクリックします。 [プロジェクト名] を [TestAddIn] に変更し、[OK] をクリックします。
-
Class1 のコード モジュールに次のコードを追加します。
Private Sub Class_Initialize() MsgBox "Class_Initialize"End Sub
-
ビルド TestAddIn.dll。
-
Excel で、新しいブックを開始します。
-
Microsoft Office Excel 2003 または Microsoft Excel 2002 では、次の手順に従います。
-
[ ツール ] メニュー の [アドイン] をポイントし、[ オートメーション] をクリックします。
-
一覧で [ TestAddIn.Class1] をクリックし、[ OK] をクリックします。
-
[アドイン] ダイアログ ボックス で 、[OK] をクリック します。
Microsoft Office Excel 2007 で、次の手順に従います。
-
[Microsoft Office] ボタンをクリックし、[Excel オプション] をクリック。
-
[アドイン] タブ を クリックします。
-
[ 管理 ] ボックスの一覧 で、[Excel アドイン] をクリックし、[ 移動] をクリックします。
-
[アドイン] ダイアログ ボックス で 、[Automation] をクリックします。
-
一覧で [ TestAddin.Class1] をクリックし、[ OK] をクリックします。
-
[OK] をクリックします。
-
-
任意のセルに「=a」と入力します。 "Class_Initialize" というテキストが表示されたメッセージ ボックスが表示されます。
-
[OK] をクリックしてメッセージ ボックスを閉じます。 数秒後、Excel は失敗します。
関連情報
関連情報を参照するには、次のマイクロソフト サポート技術情報番号をクリックしてください。
291392 INFO: Excel COM アドインとオートメーション アドイン