VBAのIE(InternetExplorer)制御に便利なサブルーチンを紹介しています。
Sub ieBasic(objIE As InternetExplorer, _
urlName As String, _
idPass As String)
Dim headValue As String
'IEのオブジェクトを作成する
Set objIE = CreateObject("InternetExplorer.Application")
'IEを表示
objIE.Visible = True
'Authorization情報
headValue = "Authorization: Basic " & idPass & vbCrLf
'指定したBasicURLのページを表示する
objIE.navigate urlName, , , , headValue
'IEが完全表示されるまで待機
Call ieCheck(objIE)
End Sub
引数名 | データ型 | 内容 | 値の事例 | 初期値 | 省略 |
---|---|---|---|---|---|
objIE | InternetExplorer | IEオブジェクト | objIE,objIE2 | × | |
urlName | String | 表示させたいBasic認証URLの文字列 | "http://www.vba-ie.net/ basic/test3.html" | × | |
idPass | String | Basic認証のID・PASS情報文字列 | "dXNlcjoxMjM0NTY=" | × |
こちらは、全て必須項目となります。
「objIE」は複数ページを表示させる場合に「objIE」「objIE2」と複数オブジェクトを生成します。「urlName」には、表示させたいBasic認証URLの文字列を設定します。
「idPass」にはBasic認証のID・PASS情報文字列を設定するのですが、設定方法にルールがありますので、そちらを説明していきます。
冒頭でBasic認証ページにアクセスする際は、リクエストのヘッダ「Authorization」にユーザー名・パスワードを格納してリクエストを行っていると説明しましたが、「Authorizationヘッダ」にユーザー名・パスワードを格納する場合は、
にする必要があります。今回の認証テストページではBASE64にエンコードする前の文字列は
になります。こちらをエンコードすると
になり、この文字列を「Authorizationヘッダ」に格納します。