Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Home : Excel 2016)
VBA for eachについて
投稿日時: 23/01/10 16:57:12
投稿者: goudoufu

XMLをエクセルに書き出すVBAを作成中です。
(EXCELの標準機能でも可能なことは知っています)
下記サイトを参考にしていたのですが、
https://freefly3104.hatenablog.com/entry/2015/04/03/222516
 
ChildNodes(1)…の部分を指定せずに処理する方法はありませんでしょうか。
自分なりに施行してみたのですがうまくいかず、
アドバイスいただければ幸いです。
 
----------------------------------------
        '<DATA>ノードの子要素をループで抽出
        Dim Node As IXMLDOMNode
        For Each Node In xmlDataNode.ChildNodes
     
            '<PRODUCTINFO>ノードの子要素を出力
            Cells(intY, intX) = Node.ChildNodes(0).Text '<SERIALNO>情報を出力
            intX = intX + 1
             
            Cells(intY, intX) = Node.ChildNodes(1).Text '<PRODUCTNAME>情報を出力
            intX = intX + 1
             
            Cells(intY, intX) = Node.ChildNodes(2).Text '<PRICE>情報を出力
            intX = intX + 1
             
            Cells(intY, intX) = Node.ChildNodes(3).Text '<STOCK>情報を出力
            intX = intX + 1
             
             
            '<STOCK quantity="10" lineNumber="1">
            Cells(intY, intX) = Node.ChildNodes(3).Attributes(0).Text 'quantity属性情報を出力
            intX = intX + 1
             
            Cells(intY, intX) = Node.ChildNodes(3).Attributes(1).Text 'lineNumber属性情報を出力
            intX = intX + 1
             
        Next
----------------------------------------

回答
投稿日時: 23/01/10 17:46:27
投稿者: sk

引用:
ChildNodes(1)…の部分を指定せずに処理する方法はありませんでしょうか。

引用:
Cells(intY, intX) = Node.ChildNodes(1).Text '<PRODUCTNAME>情報を出力

「指定せずに処理」の趣旨が不明瞭です。
 
・ChildNodes のアイテムをインデックス(数値)ではなく
 要素名(文字列)で指定したい。
 
・個々のアイテムのインデックスを数値リテラルで指定するのではなく
 変数を使用し、出来れば For 文でループさせたい。
 
・上記以外の目的。

投稿日時: 23/01/10 17:59:23
投稿者: goudoufu

ありがとうございます。
質問に不慣れで、追記しようと思ったのですができず…
わかりづらい質問で申し訳ありませんでした。
その後自己解決しました。失礼いたしました。