プロが教える店舗&オフィスのセキュリティ対策術

基本的なところですみません。
Excel2007 VBAで「実行時エラー438 オブジェクトは、このプロパティまたはメソッドをサポートしていません」となります。

Dim xml As Object
Dim objPrice As Object
Dim tempWprd As Varient

Set xml = CreateObject("Microsoft.XMLDOM")

省略(XMLデータを受信しxmlに代入)

Set objPrice = xml.SelectNodes("AAA/BBB/CCC")
If Not objPrice Is Nothing Then
tempWord = objPrice.text ’★ここでエラー
End If

というようなコードです。
うまく取れることもあるのですが、objPrice は存在するがtextのメンバがいないということだと思いますが、存在を判定する方法をご教授させてください。そもそも<ccc>文字</ccc>の中の文字(実際は数値)を取得したい場合は、textはダメなのでしょうか?
cccはNothingではないので存在しているように見えるのですが、textが使える場合と使えない場合があるのは理由があり、値がある場合に取得したいと考えています。
存在確認に関しては
if (objPrice.text <> Null) then
Empty,Nothingなどいろいろ試しましたが、そもそもtextがないようなのでうまくいきません。

すみませんが、よろしくお願いします。

A 回答 (1件)

SelectNodesメソッドは、指定されたxPathにマッチするノードのリストを取得するメソッドです。


MsgBox TypeName(objPrice)を実行すると分かりますが、IXMLDOMNodeList型のオブジェクトが返ってきます。

objPrice.lengthで要素数が取得でき、
objPrice(0).textで1番目の要素の内容が取得できます。
    • good
    • 0
この回答へのお礼

ありがとうございましたm(__)m
解決し助かりました。
型の調べ方までありがとうございました。
型を調べて、メンバを見れば良いのですね。
ちょっと理解できました。

お礼日時:2014/03/12 10:44

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!