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はこちらの記事が参考になるかもしれません。



コメント