【EXCEL VBA】SeleniumBasicでChromeのセッション情報を利用したい

自動ログイン等を前提としてChrome操作を行うにはセッション情報(Cookie情報)を取得する必要があります。SeleniumBasicでも、過去蓄積したセッション情報(Cookie情報)を利用する方法があります。今回はその方法について紹介します。

事前準備

  • テンポラリフォルダを作成する。場所は任意です。Chromeのユーザデータを保存するために作成します。
      例:D:\tmp\chrome_vba
  • Chromeのショートカットを作成する。-user-data-dirには、先ほど作成したテンポラリフォルダを指定してください。
      “C:\Program Files (x86)\Google\Chrome\Application\chrome.exe” –user-data-dir=”D:\tmp\chrome_vba”
  • 作成したショートカットでChromeを起動する(先ほどのフォルダにユーザデータが作成されます)。対象サイトへログインしてCookie情報を残してください。(Cookie情報の仕込みですね)
  • 最後にChromeを閉じる。

サンプルプログラム

ポイントは、dr.AddArgument(“user-data-dir=D:\tmp\chrome_vba”)です。指定フォルダのユーザデータを利用してChromeを起動します。このフォルダに保存されたCookie情報が使用されるため自動ログイン等が有効になります。

Option Explicit

Sub sample()
    Dim dr As New Selenium.WebDriver
    Dim el As WebElement
    
    dr.AddArgument("user-data-dir=D:\tmp\chrome_vba")
    dr.Start "chrome"
    dr.Get "https://www.yahoo.co.jp"
    
    Stop
End Sub

注意事項

通常利用しているChromeのユーザデータを指定してChrome起動することもできます。(フォルダは「C:\Users\<ユーザ名>\AppData\Local\Google\Chrome\User Data」になると思います)
しかし「通常起動のChrome」と「Seleniumbasicで起動のChrome」が同時起動するとEXCELがオートメーションエラーで落ちます。開発・試験に影響がでますので、ユーザデータは別にすることをお勧めします。