1
私は過去のGoogleスプレッドシート、特にそのimportxml()関数を使用しました。私はVBA(Excel 2010用)で機能を構築する方法があるかどうかを知りたいと思います(VBAで機能を作成するのにあまり精通していません)、Googleの機能をExcel 2010のファイル内で実行するように複製できますか?Googleのスプレッドシート関数と同等の機能を作成するexcel2010のimportxml()関数
私はそれが使用できると思ったいくつかのVBAコードを見つけましたが、私が望むものを私に与えるためにそれを実行することはできません。
理想的には、以下の関数をセル(excel 2010内)に置き、xpathコンテンツを取得したいと考えています。 ie:= importXML( "web url"、 "xpath")
ご指摘いただければ幸いです。
ベスト パコ
Option Explicit
Public Sub WaitBrowserQuiet(objIE As InternetExplorer)
Do While objIE.Busy Or objIE.ReadyState <> READYSTATE_COMPLETE
DoEvents
Loop
End Sub
Public Function getXPathElement(sXPath As String, objElement As HTMLBaseElement) As HTMLBaseElement
Dim sXPathArray() As String
Dim sNodeName As String
Dim sNodeNameIndex As String
Dim sRestOfXPath As String
Dim lNodeIndex As Long
Dim lCount As Long
' Split the xpath statement
sXPathArray = Split(sXPath, "/")
sNodeNameIndex = sXPathArray(1)
If Not InStr(sNodeNameIndex, "[") > 0 Then
sNodeName = sNodeNameIndex
lNodeIndex = 1
Else
sXPathArray = Split(sNodeNameIndex, "[")
sNodeName = sXPathArray(0)
lNodeIndex = CLng(Left(sXPathArray(1), Len(sXPathArray(1)) - 1))
End If
sRestOfXPath = Right(sXPath, Len(sXPath) - (Len(sNodeNameIndex) + 1))
Set getXPathElement = Nothing
For lCount = 0 To objElement.childNodes().Length - 1
If UCase(objElement.childNodes().Item(lCount).nodeName) = UCase(sNodeName) Then
If lNodeIndex = 1 Then
If sRestOfXPath = "" Then
Set getXPathElement = objElement.childNodes().Item(lCount)
Else
Set getXPathElement = getXPathElement(sRestOfXPath, objElement.childNodes().Item(lCount))
End If
End If
lNodeIndex = lNodeIndex - 1
End If
Next lCount
End Function
Private Sub cmdGetQuote_Click()
Dim ie As InternetExplorer
Dim elem As HTMLBaseElement
Dim url As String
url = "http://www.bloomberg.com/quote/MXIBTIIE:IND"
Set ie = New InternetExplorer
ie.Visible = True
ie.Navigate url
WaitBrowserQuiet ie
Set elem = getXPathElement("//span[@class=' price']", ie.Document)
Range("A1").Value = elem.innerText
Set ie = Nothing
End Sub
この情報を抽出しようとしていますか? Dow-13,060.10、S&P500-1,398.08、Nasdaq-3,080.50' –
no。私は4.76000を抽出しようとしています – macutan
うん、私は '価格'のための '4.76000'を見つけることができません –