Como consumir Web Services usando VBA
Neste post, eu descrevo como consumir um Web Service usando VBA.

Este post foi originalmente publicado em http://officevbavsto.blogspot.com/2011/09/chamando-webservices-pelo-vba.html
Neste post, eu descrevo como consumir um Web Service usando VBA.
O que é um Web Service?
Web Service é uma solução utilizada na integração de sistemas e na comunicação entre aplicações diferentes [7]. Uma definição simples de WebService pode ser “um serviço ou um pedaço de Software que está disponível na rede e usa um sistema padronizado de mensagem HTTP e XML” [8].
Você pode utilizar o Web Service para acessar rotinas de validação de cartão de crédito, endereçamento postal (CEP), calcular valores de fretes dos sites de comércio eletrônico, news de empresas, enfim, uma gama gigantesca de produtos [6]. Essencialmente, o Web Service faz com que os recursos da aplicação do software estejam disponíveis sobre a rede de uma forma normalizada [7].
Para mais informações sobre Web Service consulte os links da Referência Bibliográfica no final deste artigo. Se você quiser aprender a criar um WebService em .Net, recomendo dois artigos: Web Services[6] do site MSDN e Web Services para iniciantes[1] do site iMasters.
Pré-requisitos
Antes de começarmos, é necessário que você instale em seu computador dois Toolkits necessários: o Microsoft Office XP Web Services Toolkit 2.0 e o SOAP Toolkit 3.0.
Toolkit | Link Microsoft Dowload Center |
---|---|
Microsoft Office XP Web Services Toolkit 2.0 | Download[3] |
SOAP Toolkit 3.0 | Download[2] |
Para saber se você tem o SOAP Toolkit 3.0 instalado em seu computador, veja se a biblioteca “Microsoft SOAP Type Library v3.0” está disponível no Visual Basic Editor, ao clicar em Tools – References:
Microsoft Office XP Web Services Toolkit 2.0
O Web Service References Tool é usado no Microsoft Office Visual Basic Editor para criar módulos de classe proxy em VBA a partir de um WSDL (Web Service Description Language) ou de um arquivo .vsdisco (Visual Studio .NET discovery) [10].
Infelizmente, ele é suportado somente nos seguintes sistemas operacionais: Windows 2000, Windows 98, Windows ME, Windows NT, Windows XP [3].
Consumindo WebServices pelo VBA
Após a instalação execute os seguintes passos:
- Abra o Microsoft Excel;
- Abra o VBA Editor (atalho ALT+F11);
- Clique em Ferramentas.
- Você verá uma nova opção chamada "Web Service Reference".
Agora, vamos usar um WebService já pronto para executarmos nosso teste.
Encontrei uma página bem interessante que lista WebService públicos: Directory of public SOAP Web Services.
Vamos usar o "GlobalWeather" cujo WSDL é http://www.webservicex.com/globalweather.asmx?WSDL.
- No VBA Editor, clique em "Ferramentas";
- Clique em "Web Service Reference";
- Você verá a seguinte tela:
- Marque a opção "Web Service URL";
- Cole o WSDL http://www.webservicex.com/globalweather.asmx?WSDL na caixa "URL";
- Clique em "Search";
- Marque a opção "GlobalWeather" da caixa "Search Results:";
- Clique em "Add";
- Será criada a classe "clsws_GlobalWeather";
- Crie um novo módulo de código e digite o seguinte código:
Sub teste()
Dim ExampleVar As New clsws_GlobalWeather
Debug.Print ExampleVar.wsm_GetWeather("Uberaba", "Brazil")
End Sub
Agora, execute o código (tecle F5) e veja o resultado:
Neste WebService em particular, o resultado foi um XML. Existem outros WebService que retornam classes, valores calculados e etc.
Deixo como lição de casa, o WebService Calculator: http://soaptest.parasoft.com/calculator.wsdl.
Créditos
Referência Bibliográfica
- "Web Services para iniciantes | iMasters ." iMasters - Artigos e Tutoriais sobre Internet e Desenvolvimento. N.p., n.d. Web. 11 May 2013. http://imasters.com.br/artigo/3561/web-services/web-services-para-iniciantes/;
- "Microsoft Soap Toolkit Download." Microsoft Soap Toolkit Download. N.p., n.d. Web. 11 May 2013. http://microsoft-soap-toolkit.iwdownload.com/;
- "Download Microsoft Office XP Web Services Toolkit 2.0 from Official Microsoft Download Center." Microsoft Corporation. N.p., n.d. Web. 11 May 2013. http://www.microsoft.com/en-us/download/details.aspx?id=15036;
- "Microsoft Office XP Web Services Toolkit." MSDN – the Microsoft Developer Network. N.p., n.d. Web. 11 May 2013. http://msdn.microsoft.com/en-us/library/aa140268(v=office.10).aspx;
- Snell, James, and Doug Tidwell. Programming Web services with SOAP. Sebastopol, CA: O'Reilly & Associates, 2002. Print;
- "Web Services." MSDN – the Microsoft Developer Network. N.p., n.d. Web. 11 May 2013. http://msdn.microsoft.com/pt-br/library/cc564893.aspx;
- "Web service – Wikipédia, a enciclopédia livre." Wikipédia, a enciclopédia livre. N.p., n.d. Web. 11 May 2013. http://pt.wikipedia.org/wiki/Web_service;
- "What is Web Services according to W3C?, “Big Web” Services Vs. Restful Services | Cathy Mousavi." Cathy Mousavi | MIT@UGA – Fall 2011. N.p., n.d. Web. 11 May 2013. http://catmousavi.wordpress.com/2011/11/10/what-is-web-services-according-to-w3c-big-web-services-vs-restful-services/;
- "Directory of public SOAP Web Services." Directory of public SOAP Web Services. N.p., n.d. Web. 11 May 2013. http://www.service-repository.com/;
- "Calling XML Web Services from Office VBA Using the Web Service References Tool." MSDN – the Microsoft Developer Network. N.p., n.d. Web. 11 May 2013. http://msdn.microsoft.com/en-us/library/office/aa140260(v=office.10).aspx.