27

Excel 2007のVBAモジュールで、Webサービスを呼び出すことはできますか?もしそうなら、コードスニペットはありますか?Web参照を追加するにはどうすればよいですか?

4

5 に答える 5

25

はい、できます!

私はそれを行うプロジェクトに取り組みました(コメントを参照)。残念ながら、そのコードサンプルはありませんが、グーグルで次のことが明らかになりました。

ExcelとVBAを使用して複数のWebサービスからのデータを統合する方法

ステップバイステップ:VBA(ExcelまたはWord)を介したWebサービスの利用

VBA:SOAPWebサービスを利用する

于 2009-01-23T22:53:50.937 に答える
6

MS からの概要は次のとおりです。

Excel 2007 での Web サービスの使用

于 2010-01-29T21:05:04.643 に答える
3

更新された回答については、このSOの質問を参照してください。

Excel2010でVBAコードを使用してWebサービスを呼び出す

ただし、両方のスレッドをマージする必要があります。

于 2012-06-25T09:39:24.973 に答える
1

Microsoft Excel Office 2007 で、「Web Service Reference Tool」プラグインをインストールしてみてください。そして、WSDL を使用して Web サービスを追加します。モジュールで次のコードを使用して、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
于 2015-09-14T12:42:38.373 に答える