search
LoginSignup
21

More than 5 years have passed since last update.

posted at

updated at

ExcelからREST呼び出しをする方法

VBAでRESTのリクエストを送信してみる

最近はいろいろなものをRESTで呼び出すケースが増えてきました。SOAPUIなどからRESTを呼び出すテストケースを作っていたのですが、テストケースが大量にあったためにExcelでテストケースを管理し、直接REST呼び出しをしてみることにしました。

MSXML2.XMLHTTP.6.0を用いた呼び出し

単純なGETは以下のようなコードで簡単に呼び出すことが可能です。

http.vba
Dim objHTTP As Object
Set objHTTP = CreateObject("MSXML2.XMLHTTP.6.0")
objHTTP.Open "GET", "http://test.com/index.htm, False
objHTTP.setRequestHeader "Authorization", "Basic EncodedUserNameAndPassword"
objHTTP.setRequestHeader "Content-Type", "text/plain"
objHTTP.send

Proxyを設定する方法

IPアドレス制限があり、認証ありProxyを通す必要がある場合には、MSXML2.XMLHTTP.6.0ではなく、MSXML2.ServerXMLHTTP.6.0を用いて、setProxyCredentialsでProxyのユーザーIDとパスワードを指定します。
また、SSL証明書のエラーが発生する場合には、setOptionで、エラーを無視するように設定することで回避することが可能です。

Proxy.vba
Dim objHTTP As Object
Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP.6.0")
objHTTP.Open "GET", "https://test.com/index.htm", False
objHTTP.setRequestHeader "Authorization", "Basic EncodedUserNameAndPassword"
objHTTP.setRequestHeader "Content-Type", "text/plain"
objHTTP.setProxy 2, "proxyhost.com:9293"
objHTTP.setProxyCredentials "proxyUser", "ProxyPassword"
objHTTP.setOption 2, 13056
objHTTP.send

まとめ

Excelから直接RESTリクエストを送信して、各種APIを呼び出すことができます。大量のテストケースを管理するのにExcelは便利ですし、戻りのJSONをパースしてマッチングさせることで、テストを自動化することが可能です。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
21