2012-10-11 6 views
5

何らかの理由で "MSXML2.DOMDocument40"に "MSXML2.DOMDocument40"が最近変更されました。同じコードが別のコンピュータで動作しています。 理由は何でしょうか? いくつかの回答をお勧めします。VBA:MSXML2.DOMDocumentをマクロのMSXML2.DOMDocument40に変更しました

+2

「動作しません」とはどういうものでしょうか? –

+0

@TimWilliams:間違った投稿をして申し訳ありません。実際にはうまくいきます。この記事を削除するつもりはありません。下記の「Barrowc」には、いくつかの有用な情報があります。 – user1495475

答えて

14

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

開発者はアプリケーションで "Microsoft XML、v6.0"ライブラリ(msxml6.dll)を対象にすることを推奨します。これは、そのライブラリへの参照を設定し、次に適切な型を使用することによって行われます。 MSXML2.DOMDocument60

v6.0ライブラリを使用できない場合、開発者は代わりに "Microsoft XML、v3.0"ライブラリ(msxml3.dll)を使用してください。

他のバージョンのXMLライブラリを使用することは推奨されません。これは、特定のシステムでv6.0およびv3.0以外のバージョンを使用できる保証がないためです。使用したMSXML2.DOMDocument40は、 "Microsoft XML、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のhereを見つけることができます。 DOMDocument60の場合、CreateObject("Msxml2.DOMDocument.6.0")

+0

:私のコードに間違いがありました。実際にはうまくいきますが、 "MSXML2.DOMDocument40"を使用しないことをお勧めしますか?私は他のシステムにもファイルを入れます。 "msxml3.dll"、msxml4.dll、msxml6.dllのようなすべてのdllで私のシステムを検索してください。これらはC:\ Windowsフォルダや他のフォルダにもあります。お勧めします。 – user1495475

+0

私はマイクロソフトの勧告に沿って、バージョン6.0(msxml6.dll)のみを使用します。もしそれが可能ではなかった私はバージョン3.0を使用します。どのような状況でもバージョン4.0または5.0を使用しません – barrowc

関連する問題