Excel VBA WinINetでHTTPS

WinINetはWindowsが提供しているAPIの一つでExcel VBAから利用することができます。

先日、このAPIを利用したVBAプログラムでHTTPS通信を行いたいという事案が発生しました。結論から申しますとできます。

HttpOpenRequest関数の7つめの引数を変更するだけです。

調べてみたところMicrosoftのリファレンスに情報がありました。

http://nienie.com/~masapico/api_InternetOpenUrl.html

https://learn.microsoft.com/ja-jp/windows/win32/wininet/api-flags

Private Const INTERNET_FLAG_SECURE As Long = &H800000  

glngReqHnd = HttpOpenRequest( _
                      glngHttpHnd _
                    , pstrMethod _
                    , strUrl _
                    , "HTTP/1.1" _
                    , vbNullString _
                    , vbNullString _
                    , INTERNET_FLAG_SECURE_
                    , 0)

リファレンスによればFLAGは16進数で表現されます。

InternetConnect関数の第3引数をINTERNET_DEFAULT_HTTPS_PORTにするという情報がありますが、これはPortをHTTPSのデフォルトである443に設定するだけなので、この設定だけではHTTPS接続ができません。

この投稿は役に立ちましたか?
役に立った  役に立たなかった
0人中0人がこの投稿は役に立ったと言っています。