前提・実現したいこと
エクセルVBAを使って、クライアント証明書が必要なサイトにIEを使ってアクセスし、
スクリーンショットをしたあとエクセルシートに貼り付けるためのマクロを作っています。
しかし、接続するためのクライアント証明書を選択していないため以下のメッセージを出力しエラーとなってしまいました。
※IEにはクライアント証明書は導入済。
そこで、IEに入っているクライアント証明書を使って(選択して)アクセスできるようにしたいのですが、どなたかご存知の方いらっしゃいましたらご教授お願いします。
発生している問題・エラーメッセージ
実行時エラー462 リモートサーバーがないか、使用できる状態ではありません。
コード(一部抜粋)
Sub Auto_Open() Dim Ans As Long Ans = MsgBox("キャプチャを実行します。", vbYesNo) If Ans = vbYes Then 'YESの場合実行 Dim objIE As Object 'IE起動 Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True 'IEウィンドウを全画面表示にする ret = ShowWindow(objIE.hwnd, 3) 'IEでURLを開く objIE.navigate "クライアント証明書が必要なページのURL" '完全にページが表示されるまで待機する Do While objIE.Busy = True Or objIE.readyState <> 4 DoEvents Loop Call WaitFor(1) '1秒停止 ' キャプチャ実行 keybd_event vbKeySnapshot, 0&, &H1, 0& keybd_event vbKeySnapshot, 0&, &H1 Or &H2, 0& Call WaitFor(0.7) '0.7秒停止 '貼り付け処理 Sheets("貼り付けるシート").Activate Range("A1").Select Call WaitFor(0.7) '0.7秒停止 ActiveSheet.Paste '指定した秒だけ停止する関数 Function WaitFor(ByVal second As Integer) Dim futureTime As Date futureTime = DateAdd("s", second, Now) While Now < futureTime DoEvents Wend End Function 'IE終了 objIE.Quit Else 'NOの場合終了 MsgBox "中断しました。" End End If End Sub
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。