Basic認証を自動ログインしたい
Excel VBAマクロでIEを自動制御する際、Basic認証を自動でログインする事も可能です。
Basic認証とは下記のようなポップアップでID、パスワードを入力する必要があるサイトです。
IEでBasic認証を自動ログインするサンプルコード
'■Basic認証を自動ログインするサンプル Public Sub sample_ie_basic_auth() Dim objIE As InternetExplorer Dim auth As String Dim sId As String, sPass As String, sIdPass As String Dim sURL As String: sURL = "https://vba-create.jp" '■実際にはBasic認証があるサイトURLを入れる '■IDとPasswordをBase64へエンコードする sId = "testid" sPass = "pass1234" sIdPass = Call_EncodeBase64(sId & ":" & sPass) '■認証情報を作成する auth = "Authorization: Basic " & sIdPass & vbCrLf '■InternetExplorerを起動 Set objIE = New InternetExplorer objIE.Visible = True '■Basic認証画面を自動ログインする objIE.navigate sURL, , , , auth Call_IE_WaitTime End Sub
注意点
- Basic認証のログイン用IDやPasswordはBase64フォーマットへのエンコードが必要です。
- エンコード後、”Authorization: Basic “の文字情報、改行を追加したデータをヘッダー情報として渡します。
上記情報を渡す事で、Basic認証の自動ログインが可能です。 - こちらのコードだけでは動作しません。
下記の読み込み待ちのパーツ化したコードが必要です。
VBAでIE操作「ブラウザの読込待ち」処理をパーツ化する【エクセルマクロ】
【ExcelVBA】Base64にエンコードする - 上記でログインできないサイトは素直にSendKeyでキーボード押下した方が早いかもしれません。
※IEへのSendKeyはこちらの記事が参考になるかもしれません。
コメント