MSXMLを使ったExcel VBAをWindows 8.1で動かしたときに、MSXML2.DOMDocument型の変数の定義のところで「コンパイルエラー: ユーザー定義型は定義されていません」というエラーが出て動かない場合があります。
このエラーは参照設定に「Microsoft XML. v6.0」を追加しているときに起こります。
どうやら互換用のDOMDocumentクラスなどがWindows 8.1のMSXMLから削除されてしまい、v6.0用のDOMDocument60しか残っていないからのようです。
Windows 8.1のMicrosoft XML. v6.0
したがって、DOMDocumentをDOMDocument60に書き直すことで動作するようになります。
修正前
Dim doc As MSXML2.DOMDocument
修正後
Dim doc As MSXML2.DOMDocument60
ちなみに「Microsoft XML. v3.0」の場合には起こりません。