XmlデータをExcelにインポートしようとしています。ですから、コードの最初の行は
Dim XMLDOC As MSXML2.DOMDocument
これにより、「ユーザー定義タイプが定義されていません」というエラーが発生します
VBE内で、[ツール]-> [参照]に移動し、[Microsoft XML v6.0](または最新のものを選択します。これにより、XMLオブジェクトライブラリにアクセスできます。
豪華な写真で更新されました!
Microsoft XML, v3.0
が必要なDOMDocument
が定義されていましたが、参照でMicrosoft XML, v6.0
が選択されていたため、以下のエラーが発生しました
「ユーザー定義タイプが定義されていません」。
解決策
解決策は、DOMDocument
をDOMDocument60
に変更するか(60はバージョン6.0を使用)、DomDocument
でMicrosoft XML, v3.0
参照を使用することでした。
簡単なメモですが、Microsoft XML v4.0などの別のバージョンを使用している場合は、DOMDocument40
を使用する必要があります。これは、DOMDocument
の末尾の数字が、使用されているライブラリのバージョンに固有であるためです。
私は他の誰かが書いたVBA Excelマクロを使用しており、最近Windows 7/Office 2010からWindows 10/Office 2016にアップグレードした後、それを修正する仕事をしました。同じ「ユーザー定義型が定義されていません」コンパイルエラーを受け取り始めました。以前のインストールにもMS XML v6.0が含まれていましたが、明らかにWindows 10および/またはOffice 2016のコードでこのバージョンを明示的に指定する必要があります(どのアップグレードが問題の原因であるかを確認できませんでした)。次の検索/置換を実行することで問題を解決できました。
"DOMDocument" to "MSXML2.DOMDocument60"
"XMLHTTP" to "MSXML2.XMLHTTP60"