カテゴリー
SugiBlog Webエンジニアのためのお役立ちTips

VBAでWEBサーバーにHTTPリクエスト

この記事は最終更新日から1年以上経過しています。

MSXML2.XMLHTTPオブジェクトを利用してWEB上のデータを取得したり、PHP等のプログラムへデータを送信することができます。

ACCESS等で入力したデータをすぐにWEBに反映させたいとき等に便利です。

まずは宣言

Dim xmlHttp  as Object 'HTTPリクエストオブジェクト
Dim url      As String 'リクエストを送るURL
Dim strParam As String 'リクエストパラメータ
Dim strRes   As String '結果を受け取る変数

HTTPリクエスト用オブジェクトのバインド

Set xmlHttp = CreateObject("MSXML2.XMLHTTP")

・GET送信
リクエストするURLを指定

url = "http://www.example.jp/index.html"
With xmlHttp
    .Open "GET", url, False
    .SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"
    .Send
    strRes = .ResponseText
End With


・POST送信
PHP等で作成したプログラムのURLを指定

url = "http://www.example.jp/example.php"

送信するパラメータの設定

strParam = "msg=テスト"
With xmlHttp
    .Open "POST", url, False
    .SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"
    .Send (strParam)
    strRes = .ResponseText
End With

openメソッドの書式

open(strMethod, strUrl[, varAsync[, strUser[, strPassword]]])
strMethod GETまたはPOST等のメソッドを指定します
strUrl リクエストを送るURL
varAsync 同期(True(失敗したらエラーが発生))/非同期(False)を指定します(省略可)既定値:True
strUser 認証が必要な場合、ユーザー名を指定します(省略可)
strPassword 認証が必要な場合、パスワードを指定します(省略可)

レスポンスをメッセージボックスで表示します。

If Trim(strRes) <> "" Then MsgBox strRes

オブジェクトを解放

Set xmlHttp = Nothing
この記事がお役に立ちましたらシェアお願いします
55,585 views

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です