[OFF2003] [BUG] 適切でない Microsoft Forms 2.0 Object Library への参照を使用するとエラー メッセージ "メソッドへアクセスに失敗しました。" が表示される

文書翻訳 文書翻訳
文書番号: 824009 - 対象製品
すべて展開する | すべて折りたたむ

現象

Microsoft Forms 2.0 Object Library への参照を含む Visual Studio .NET プロジェクトで、以下のようなエラー メッセージが表示されることがあります。
System.MethodAccessException: "メソッドへアクセスに失敗しました。"

原因

[参照の追加] ダイアログ ボックスを使用して Microsoft Forms 2.0 Object Library への参照を追加すると、[Microsoft Forms 2.0 Object Library] に 2 つのエントリが表示される場合があります。これらのエントリはどちらも FM20.dll ファイルを参照します。

[Microsoft Forms 2.0 Object Library] の 2 つのエントリのうち、プライマリ相互運用機能アセンブリ (PIA) 参照である最初のエントリを選択する必要があります。2 番目のエントリを選択すると、アプリケーションが予期したとおりに動作しないことがあります。

解決方法

この問題を解決するには、次の手順を実行します。
  1. ソリューション エクスプローラで、[参照設定] の下の [MSForms] を右クリックし、[削除] をクリックします。
  2. ソリューション エクスプローラで、[参照設定] を右クリックし、[参照の追加] をクリックします。

    [参照の追加] ダイアログ ボックスが表示されます。
  3. [参照の追加] ダイアログ ボックスで、[COM] タブをクリックします。
  4. コンポーネントの一覧で、[Microsoft Forms 2.0 Object Library] という名前の最初のエントリをクリックします。

    : このエントリは PIA バージョンである必要があります。[参照の追加] ダイアログ ボックスに表示されている [Microsoft Forms 2.0 Object Library] のエントリが 1 つのみの場合、このエントリは PIA バージョンではないため、まず Microsoft Office System 2003 CD-ROM から PIA をインストールする必要があります。
  5. [選択] をクリックし、選択されたコンポーネントの一覧にエントリを追加します。
  6. [OK] をクリックして [参照の追加] ダイアログ ボックスを閉じます。
  7. ソリューション エクスプローラで、手順 5. で追加した MSForms 参照をクリックします。"ローカル コピー" プロパティが False に設定され、"パス" プロパティが PIA を指していることを確認します (「詳細」参照)。
  8. アプリケーション フォルダにある Obj フォルダから古い Interop.MSForms.dll を削除します。

詳細

PIA バージョンの Microsoft Forms 2.0 Object Library への参照を使用すると、ソリューション エクスプローラに MSForms 参照の以下のプロパティが表示されます。
  • ローカル コピー: False
  • パス: C:\WINDOWS\assembly\GAC\Microsoft.Vbe.Interop.Forms\11.0.0.0__71e9bce111e9429c\Microsoft.Vbe.Interop.Forms.dll
"パス" プロパティがグローバル アセンブリ キャッシュ (GAC) 内のフォルダを指している場合は、適切な (PIA) 参照を使用しています。

Microsoft Forms 2.0 Object Library への参照が適切でない場合 (または PIA がインストールされていない場合)、MSForms のプロパティは以下のようになります。
  • ローカル コピー: True
  • パス: C:\プロジェクト フォルダ\obj\Interop.MSForms.dll
Visual Studio .NET によって新しい相互運用機能アセンブリ (IA) が作成され、プロジェクト内のフォルダにコピーされる場合は、適切でないアセンブリが使用されています。

ソリューションで適切でない MSForms 参照が使用されている場合、このライブラリからオブジェクトを使用すると問題が発生することがあります。たとえば、Visual Studio Tools for the Microsoft Office System を使用して作成された Excel ブック プロジェクトで FindControl 関数を使用すると、問題が発生する可能性があります (通常、ワークシートで CommandButton コントロールの Click イベントをキャプチャする際にこの操作を行うことがあります)。ソリューションで適切でない MSForms 参照が使用されている場合、コードではエラーが発生していないように見えますが、ユーザーがワークシートでボタンをクリックしても、CommandButton コントロールの Click イベントが起動されません。CommandButton オブジェクトを割り当てる際に例外ハンドラを使用すると、「現象」に記載されたエラー メッセージが表示されます。

関連情報

この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 824009 (最終更新日 2003-09-17) を基に作成したものです。

プロパティ

文書番号: 824009 - 最終更新日: 2003年10月30日 - リビジョン: 1.1
この資料は以下の製品について記述したものです。
  • Microsoft Visual Studio .NET 2003 Professional Edition
  • Microsoft Office Professional Edition 2003
  • Microsoft Visual Studio Tools for the Microsoft Office System
キーワード:?
kberrmsg kbbug kbpia kbnofix KB824009
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com