7

最近、何らかの理由で「MSXML2.DOMDocument」を「MSXML2.DOMDocument40」に変更しました。自分のコンピュータでは動作しますが、同じコードが別のコンピュータでは動作しません。理由は何でしょうか?いくつかの答えを提案してください。

4

1 に答える 1

26

MSXML2.DOMDocumentは常にの同義語ですMSXML2.DOMDocument30。これは、VBA(msxml3.dll)の「MicrosoftXML、v3.0」によって参照されるライブラリに対応します。

Microsoftは、開発者がアプリケーションで「Microsoft XML、v6.0」ライブラリ(msxml6.dll)をターゲットにすることをお勧めします。これは、そのライブラリへの参照を設定してから、適切なタイプを使用することによって行われますMSXML2.DOMDocument60

v6.0ライブラリを使用できない場合、開発者は代わりに「Microsoft XML、v3.0」ライブラリ(msxml3.dll)にフォールバックする必要があります。

特定のシステムでv6.0およびv3.0以外のバージョンが使用可能であるという保証はないため、他のバージョンのXMLライブラリを使用することはお勧めしません。使用MSXML2.DOMDocument40したものは「MicrosoftXML、v4.0」ライブラリ(msxml4.dll)に対応しており、このコードが実行されていないコンピューターでは、そのライブラリを使用できない可能性があります。

詳細については、http://blogs.msdn.com/b/xmlteam/archive/2006/10/23/using-the-right-version-of-msxml-in-internet-explorer.aspxを参照してください。

編集:遅延バインディングを使用している場合は、ここで適切なProgIDを見つけることができます。DOMDocument60の場合、次を使用しますCreateObject("Msxml2.DOMDocument.6.0")

于 2012-10-11T21:31:13.437 に答える