VBAでIE操作に役立つBasic認証自動ログイン「ieBasic」

VBAのIE(InternetExplorer)制御に便利なサブルーチンを紹介しています。

「ieBasicサブルーチン」の詳しい説明は以下よりご確認ください。
Basic認証自動ログイン「ieBasic」
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
引数名データ型内容値の事例初期値省略
objIEInternetExplorerIEオブジェクトobjIE,objIE2×
urlNameString表示させたいBasic認証URLの文字列"http://www.vba-ie.net/
basic/test3.html"
×
idPassStringBasic認証のID・PASS情報文字列"dXNlcjoxMjM0NTY="×
ieBasic("IEオブジェクト","表示させたいBasic認証URLの文字列","Basic認証のID・PASS情報文字列")

こちらは、全て必須項目となります。
「objIE」は複数ページを表示させる場合に「objIE」「objIE2」と複数オブジェクトを生成します。「urlName」には、表示させたいBasic認証URLの文字列を設定します。

「idPass」にはBasic認証のID・PASS情報文字列を設定するのですが、設定方法にルールがありますので、そちらを説明していきます。

冒頭でBasic認証ページにアクセスする際は、リクエストのヘッダ「Authorization」にユーザー名・パスワードを格納してリクエストを行っていると説明しましたが、「Authorizationヘッダ」にユーザー名・パスワードを格納する場合は、

ユーザー名:(半角コロン)パスワードの文字列をBASE64にエンコードした文字列

にする必要があります。今回の認証テストページではBASE64にエンコードする前の文字列は

user:123456

になります。こちらをエンコードすると

dXNlcjoxMjM0NTY=

になり、この文字列を「Authorizationヘッダ」に格納します。