先日のエントリでは、MSXML2.XMLHTTP によるweb apiの利用方法を紹介しましたが、今回はOffice Web Services Toolkit でvbaからsoapを利用する方法を紹介します。
http://d.hatena.ne.jp/end0tknr/20081115/1226755041
Office Web Services Toolkitとは
Office Web Services Toolkitとは、Visual Basic Editor に XML Web サービスを扱う機能を追加してくれるものです。
現在、OfficeXPにはOffice XP Web Services Toolkit、Office2003にはOffice 2003 Web Services Toolkitが提供されていますが、Office2007では提供されていないようです。
Office Web Services Toolkitによるsoap client作成
先程のurlからダウンロードしinstallすると、Visual Basic Editorのメニューに「Web Service References」が追加されます。この「Web Service References」から表示されるダイアログの「Web サービス URL」にwsdlを入力すると、soap clientクラスが生成されます。
ユーザ登録が必要ですが、インターネット上にあるwsdlには次のようなものがあります。
http://dev.geoap.jp/GeOAP_Trial/GeOAP_Trial.asmx?wsdl
後は、次のようなコードを書けば、vbaと soap web serviceとの連携を実現できます。
※尚、以下のコードは、dev.geoap.jp用ではありません。
Sub soapTest() Dim ExampleVar As New clsws_SoapService 'Soap Client Dim results As Variant '結果はVariant型で受ける 'soap methodの呼び出し 'resultsの中身は、文字列のリスト results = ExampleVar.wsm_getAllElement("HOGEHOGE", "Unit") 'resultsのdebug write If Not IsNull(results) Then For Each result In results MsgBox result Next result End If End Sub
soap serviceに対する認証
例えば、次のような方法もあるようです。
http://www.geoap.jp/service/tech/tech3_2.htm