[ VBA ] xml ファイルの妥当性を検証する ( MSXML2.DOMDocument60.Load )

Pocket

ここでは、VBA で xml ファイルの妥当性を検証するサンプルスクリプトを掲載しています。なお、ここで掲載しているサンプルスクリプトの動作検証は Windows10 + Excel2013 で行っています。

スポンサーリンク

xml ファイルの妥当性の検証

xml ファイルの妥当性を検証するサンプルスクリプトです。詳細はサンプル内のコメントを参照ください。

' xml ファイルの妥当性を検証する
Function isValidXML(ByVal xmlFilePath As String) As Boolean

   Dim XMLDocument As MSXML2.DOMDocument60

    'MSXMLオブジェクトを生成し、xmlファイルをロード
    Set XMLDocument = New MSXML2.DOMDocument60
    XMLDocument.async = False  ' 動機的にXMLファイルを読み込む
    XMLDocument.Load (xmlFilePath)
    If (XMLDocument.parseError.ErrorCode <> 0) Then 'ロード失敗
        MsgBox XMLDocument.parseError.reason   'エラー内容を出力
        isValidXML = false; ' 妥当性検証NG
        Exit Function
    End If

    isValidXML = true; ' 検証OK

End Function

例えば、適当にXMLファイルの要素の括弧(<>)を適当に削除して、上記のスクリプトを実行すると以下のようなエラーメッセージが出力されます。今回出力されたメッセージは、『 無効な文字が含まれた名前です 』 でしたが、xml ファイルの壊れ方次第でメッセージは変化します。

検証NGの場合のメッセージ出力例

検証NGの場合のメッセージ出力例

参照設定の追加

上記のスクリプトを実行するには、以下のように Microsoft XML, v6.0 の参照設定を追加する必要があります。

xml参照設定

xml参照設定

スポンサーリンク

Pocket

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>