最初に、 "Microsoft XML、vx.x"というライブラリを使用することをお勧めします。ここで、xは最新のバージョンです(6.0にする必要があります)。その後、あなたは行くのが良いです。しかし、VBAでXMLを扱う際に考慮すべきことは、答えには広範囲に及ぶことです。でも、私はあなたの所望の出力を得るためにここにコードを提供します:
Sub parse_xml()
Dim XmlFileName As String: XmlFileName = "C:\Path\Filename.xml"
Dim XmlDocument As New MSXML2.DOMDocument60
Dim NodeA As IXMLDOMNode
Dim NodeB As IXMLDOMNode
Dim NodeC As IXMLDOMNode
XmlDocument.Load XmlFileName
For Each NodeA In XmlDocument.DocumentElement.ChildNodes
For Each NodeB In NodeA.ChildNodes
For Each NodeC In NodeB.ChildNodes
Debug.Print NodeC.ParentNode.ParentNode.BaseName & NodeC.ParentNode.BaseName & NodeC.BaseName
Next NodeC
Next NodeB
Next NodeA
End Sub
は、私はそれをXmlDocument変数にロードすることができ、有効なXML-ファイルにするために、あなたのファイルを少し拡大しなければならなかったことに注意してください。 (あなたが見ることができるように私だけを使用します。Debug.Print)
<?xml version="1.0" encoding="UTF-8"?>
<data>
<A1>
<B1>
<c1>value</c1>
<c2>value</c2>
<c3>value</c3>
</B1>
<B2>
<c1>value</c1>
<c2>value</c2>
<c3>value</c3>
</B2>
</A1>
<A2>
<B1>
<c1>value</c1>
<c2>value</c2>
<c3>value</c3>
</B1>
<B2>
<c1>value</c1>
<c2>value</c2>
<c3>value</c3>
</B2>
</A2>
</data>
これは、次のような出力を生成します:次されて、私はこの例のために使用されるXMLファイル
A1B1c2
A1B1c3
A1B2c1
A1B2c2
A1B2c3
A2B1c1
A2B1c2
A2B1c3
A2B2c1
A2B2c2
A2B2c3
サイドノートでend:ピエールのコメントとは違って、私はVBAでのXMLの解析は達成可能な作業だと思う。私の経験から、ファイルの実際の解析を行うには、投稿の一番上にあるライブラリをお勧めします。私は、かなり複雑なXML-Filesを解析するためにそのライブラリだけを使って作業しました。
編集:
Sub parse_xml()
Dim XmlFileName As String: XmlFileName = "C:\Path\Filename.xml"
Dim XmlDocument As New MSXML2.DOMDocument60
Dim NodeA As IXMLDOMNode
Dim NodeB As IXMLDOMNode
Dim NodeC As IXMLDOMNode
Dim DesiredA As String: DesiredA = "A2" 'Enter your desired A here
XmlDocument.Load XmlFileName
For Each NodeA In XmlDocument.DocumentElement.ChildNodes
If NodeA.BaseName = DesiredA Then 'This is the new line that selects your desired A
For Each NodeB In NodeA.ChildNodes
For Each NodeC In NodeB.ChildNodes
Debug.Print NodeC.ParentNode.ParentNode.BaseName & NodeC.ParentNode.BaseName & NodeC.BaseName
Next NodeC
Next NodeB
End If 'End of the If-Statement
Next NodeA
End Sub
あなたはVBAでXML文書を解析しようとしていると私はあなたがあなたの前にでこぼこ道を持っていると言わなければならない。これが唯一の希望基準の値を抽出するコードであり、あなたは[このトピック](http://stackoverflow.com/questions/11305/how-to-parse-xml-using-vba)と[this one](http://stackoverflow.com/)を見ることができます。質問/ 21491736/XMLファイルの読み書き方法とデータ保存方法)。 VBAでXMLを解析するのは悪夢であり、XPathも見ようとしますが、これを簡単に行う方法はありません。 –
あなたはVBAでできないことを意味しますか? – user2155454
明らかに私が提供したリンクは開かなかったが、とにかく説明する。そうすることはできますが、非常に難しく、[XPathのリンクをクリックする](https://msdn.microsoft.com/en-us/library/ms256086)のように、あらゆる種類のライブラリとツールを使用する必要があります。 (v = 1.10).aspx)。あなたの投稿が削除される可能性が高いので、回答を探してみてください。 –