serviço de web chamada no Excel
-
19-08-2019 - |
Pergunta
Em um módulo VBA no Excel 2007, é possível chamar um serviço web? Se assim for, quaisquer trechos de código? Como eu gostaria de acrescentar a referência da web?
Solução
Sim, você pode!
Eu trabalhei em um projeto que fez isso (comentário Ver). Infelizmente, há exemplos de código de que um, mas googling revelou estes:
Como você pode integrar dados de vários serviços da Web usando o Excel e VBA
PASSO A PASSO: Consumir web Services através de VBA (Excel ou Word)
Outras dicas
Aqui está um resumo de MS:
Para uma resposta atualizados ver esta pergunta SO:
chamar o serviço web usando o código VBA no Excel 2010
Os dois tópicos devem ser mesclados embora.
Em Microsoft Excel Office 2007 instalação try "Web Service ferramenta de referência" plugin. E usar o WSDL e adicionar os web-services. Ea utilização seguinte código no módulo para buscar os dados necessários do serviço web.
Sub Demo()
Dim XDoc As MSXML2.DOMDocument
Dim xEmpDetails As MSXML2.IXMLDOMNode
Dim xParent As MSXML2.IXMLDOMNode
Dim xChild As MSXML2.IXMLDOMNode
Dim query As String
Dim Col, Row As Integer
Dim objWS As New clsws_GlobalWeather
Set XDoc = New MSXML2.DOMDocument
XDoc.async = False
XDoc.validateOnParse = False
query = objWS.wsm_GetCitiesByCountry("india")
If Not XDoc.LoadXML(query) Then 'strXML is the string with XML'
Err.Raise XDoc.parseError.ErrorCode, , XDoc.parseError.reason
End If
XDoc.LoadXML (query)
Set xEmpDetails = XDoc.DocumentElement
Set xParent = xEmpDetails.FirstChild
Worksheets("Sheet3").Cells(1, 1).Value = "Country"
Worksheets("Sheet3").Cells(1, 1).Interior.Color = RGB(65, 105, 225)
Worksheets("Sheet3").Cells(1, 2).Value = "City"
Worksheets("Sheet3").Cells(1, 2).Interior.Color = RGB(65, 105, 225)
Row = 2
Col = 1
For Each xParent In xEmpDetails.ChildNodes
For Each xChild In xParent.ChildNodes
Worksheets("Sheet3").Cells(Row, Col).Value = xChild.Text
Col = Col + 1
Next xChild
Row = Row + 1
Col = 1
Next xParent
End Sub