1.7.9. Excel

1.7.9.1. 概要

Microsoft Officeのうち、Excel 2003で作成したWebサービスのクライアントサンプルです。

Microsoft OfficeはVisualStudio.NETと同様にWebサービスのクライアントとして動作させることができます。ここでは、チュートリアルで作成したHelloサービスに、Microsoft Excel 2003(以後Excel 2003)と追加プログラムのMicrosoft Office 2003Web Services Toolkitを利用してアクセスする手順を説明します。

Caution
MicrosoftOffice System (Excel 2003)でWebサービスを利用する場合、Microsoft Office 2003 Web Services Toolkitを別途入手し、事前にインストールしておく必要があります。
また、Microsoft Office XP(Excel 2002)を利用する場合はOffice XP Web Services Toolkit 2.0が必要になります。各ソフトウェアの詳細情報、およびダウンロードにつきましてはマイクロソフトのホームページhttp://www.microsoft.com/japan/をご覧ください。

Memo
ここではExcel 2003を利用していますがExcel2002も手順は基本的に同じです。

Microsoft Office Excel 2003(以降Excel)のメニュー ツール > マクロ > VisualBasic Editor を選択し、Visual Basic Editorを起動します。


図1.7.9.1-1

Visual Basic EditorのMicrosoftOffice 2003 Web Services Toolkitのウィザードを起動してWebサービスの参照を行います。メニュー ツール > Web Service Referencesを選択してウィザードを起動します。


図1.7.9.1-2

Caution
Web ServiceReferencesは、Microsoft Office 2003 Web ServicesToolkit(Excel 2002の場合はOffice XP Web ServicesToolkit 2.0)がインストールされていない場合、メニューに表示されません。表示されない場合、正常にインストールされているか確認してください。

WSDLを参照するので、WebサービスURLを選択し、URIの入力フィールドへ利用したいサービスのWSDLの URLファイルパスを指定します。
(例)C:\workspace\HelloService\xml\Hello.wsdl
(例)http://localhost/HelloService/Hello?wsdl
指定後、検索をクリックし、WSDLを検索を実行します。


図1.7.9.1-3

WSDLファイルが見つかると、検索結果に利用できるWebサービスが表示されます。
Helloサービスが表示されていることを確認し、「Hello」をONにして、 追加をクリックします。


図1.7.9.1-4

Excel上で利用するためのコードを記述します。メニュー挿入 > 標準モジュール を選択して標準モジュールを追加します。


図1.7.9.1-5


図1.7.9.1-6

VBAコードは次のように記述します。Function名のhelloはExcel中で呼び出す関数名になります。
Public Function hello(in0 As String) 
  Dim binding As New clsws_Hello 
  hello = binding.wsm_say_hello_Hello(in0) 
End Function
      
以上で準備は完了です。記述した標準モジュールを保存し、Visual BasicEditorを閉じます。
標準モジュールで記述した関数helloを実際に呼び出します。


図1.7.9.1-7

実行すると「Hello WebOTX !」が表示されます。


図1.7.9.1-8

1.7.9.2. 構成


表1.8.9.2-1
client_sample.xls WebサービスにアクセスするExcelファイル本体です。コードはVBAで記述されています。セキュリティの設定レベルが高いとサンプルが実行できませんので、セキュリティレベルを下げるかアプリケーション開発ガイドを参照してExcelファイルを作成しなおしてください。
Hello.wsdl アクセス対象となるWebサービスの情報を記述したWSDLファイルです。 ホスト名がlocalhost、ポート番号が80となっていますので、環境に応じて適宜変更してください。
HelloService.war アクセス先とするWebサービス

1.7.9.3. 実行手順

  1. client_sample.zipをダウンロードして、解凍します。
  2. WebOTX運用管理ツール パースペクティブで解凍したディレクトリ下の HelloService.war を配備します。
  3. 解凍したディレクトリ下の Hello.wsdl を"C:\temp\Hello.wsdl"下へコピーします。
  4. Excelで解凍したディレクトリ下のサンプルファイル client_sample.xls を開きます。セキュリティ警告が出た場合、マクロを有効にする必要があります。
  5. 任意セールで「=hello("WebOTX")」を入力すると、「Hello WebOTX !」が返却されます。

1.7.9.4. 注意事項

本サンプルの実行にはExcel以外のアプリケーションは特に必要ありませんが、Webサービスクライアントを再作成する場合などはWeb Services Toolkitをインストールする必要があります。