Accessing REST Web Services with VBA

While the Microsoft Office Web Services Toolkit doesn’t provide direct support for REST-based services, REST is simple enough in practice that it doesn’t really need a toolkit. All it requires is support for HTTP, which VBA offers through the MSXML2.XMLHTTP object. Using this object, you can create HTTP requests and process the responses. Since a lot of the SOAP web services described previously offer simple HTTP versions, it’s easy to create a comparison, so this example will use the GetInfoByZIP service shown earlier. If you visit http://webservicex.net/uszip.asmx?op=GetInfoByZIP, you’ll see the test form in Figure 9-15.

Test form that supports the web service

Figure 9-15. Test form that supports the web service

If you enter “13062” and click the Invoke button, you’ll see something like Figure 9-16.

A test invocation of the web service using GET

Figure 9-16. A test invocation of the web service using GET

What has happened here is that the form sent the zip code information as part of a GET query—note the query string in the address bar—and received an XML document in return. For many web services, there’s no need for anything more complicated.

Integrating this simple version of the web service into Excel is easy. Start by creating a new spreadsheet that looks like Figure 9-17, itself an echo of Figure 9-10.

Figure 9-17. Spreadsheet base ...

Get Office 2003 XML now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.