• ベストアンサー
  • 困ってます

Excel VBAでXML形式のデータを扱いたい

  • 質問No.2559301
  • 閲覧数7626
  • ありがとう数2
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 81% (91/112)

SQL ServerにXML形式のデータが"1つのカラムにロングテキスト(ntext)形式で格納"されています。
このデータをExcelのVBAで取得したのは良いのですが、XML文書からタグを指定して任意の値を取得する方法がわかりません。

とりあえず以下のように普通の取得をするまでは書いてみました。

---
Sub GetXMLDataFromSQLServ()
Dim CNN As ADODB.Connection
Dim RST As ADODB.Recordset

Dim RecCt As Long
Dim strCNN As String
Dim strData1 As String
Dim strData2 As String
Dim xmlTest As MSXML2.DOMDocument

'Connection String
strCNN = "driver={SQL Server}; server=appdemo; uid=userid; pwd=password; database=database"

Set CNN = New Connection
CNN.ConnectionTimeout = 30
CNN.Open strCNN

'レコードセットを開く
Set RST = New ADODB.Recordset
RST.CursorType = adOpenStatic
RST.Open "SELECT * FROM G_JOB_CONTENT;", strCNN
RST.MoveFirst

'シートに出力
Do Until RST.EOF
ActiveCell.Value = RST.Fields("JOB_ID")
ActiveCell.Offset(0, 1).Value = RST.Fields("XML") '---(1)
RST.MoveNext '
ActiveCell.Offset(1, 0).Activate
Loop

'レコードセットを閉じる
Set RST = Nothing
'接続を閉じる
Set CNN = Nothing

End Sub
---
(1)の部分でXMLのタグを指定し、任意のデータを得たいと考えています。
参照設定などを見て、おそらくMSXML2オブジェクトを使うのかな、というところまでは想像ついたのですけど・・・。

どなたかご教示の程をお願いいたします。

質問者が選んだベストアンサー

  • 回答No.1
  • ベストアンサー

ベストアンサー率 43% (418/971)

Msxml2.DOMDocumentを使用して、loadXMLで読み込めばDOMツリーに展開出来ると思います。

MSXMLのリファレンスは以下のページです。
http://msdn.microsoft.com/library/en-us/xmlsdk/html/b24aafc2-bf1b-4702-bf1c-b7ae3597eb0c.asp?frame=true
お礼コメント
Yupa3

お礼率 81% (91/112)

御礼が遅くなりまして大変申し訳ありません。
自分でもその後試行錯誤した結果、同じ結果にたどり着きました。
投稿日時:2006/12/03 23:55
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,600万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ