プロが教える店舗&オフィスのセキュリティ対策術

こんばんは。vba初心者です。
ExcelのA1セルをダブルクリックすると指定のURLを開き、B1とC1セルのID・PWを自動入力し、
「ログイン」ボタンをクリック、次画面の「受信トレイ」のリンクをクリックする、
この作業をダブルクリック一つで自動で行えるように↓のプロシージャを作成しました。
IEは立ち上がり、ID・PWは指定のテキストボックスに入力はされるのですが、
肝心の「ログイン」ボタンがアクティブにならず(クリックしても反応がない状態)、
ログインができません。
カーソルをログインボタン上を通過させるとアクティブになり、Sleep 10000で待機状態に、
ログインボタン上にカーソルを通過させてアクティブにさせて待っていると、それ以降の
作業も自動的に進みます。

Sendkeysで{Tab}{Enter}や、Focusなども試しましたが、どれもダメで行き詰まっております。
IEはバージョン情報をみてくるのを忘れてしまいましたが、最新のバージョンだったと思います。

プロシージャに問題があるのか、IEの設定に問題があるのか、お分かりになるかたいらっしゃいましたら、お力添え頂きたく、お願いいたします。

【プロシージャ】
Private Sub Worksheet_BeforeDoubuleClick(Bevel Target As Range, Cancel As Boolean)
if ActiveCell.Colum >3= Then End
Dim ie. As InternetExplorer
Dim txtoutput As HTMLInputElement
Dim txtoutput2 As HTMLInputElement
Dim button As HTMLInputElement
Dim anchor As HTMLAnchorElement

Set ie. = Nothing
Set ie. = CreateObject("internetexplorer.application")
ie.Visible = True
ie.Navigate "https://sumple.biz/APS/index.do"

Sleep 1500

Do While ie.Busy = True Or ie.ReadyState <> READYSTATE_COMPLETE
Sleep 1
DoEvents
Loop

SetForegroundWindow(ie.Hwnd)
ret = ShowWindow(ie.Hwnd, 3)

Set txtoutput = ie.document.getElementsByName("userAccount")(0)
Set txtoutput2 = ie.document.getElementsByName("password")(0)

txtoutput.Value = Cells(ActiveCell.Row, 3)
txtoutput2.Value = Cells(ActiveCell.Row, 4)

Sleep 100
For Each button In ie.document.getElementsBytagName("input")
If button.Type = "submit" And button.Value = "ログイン" Then
button.Click
Exit For
End if
Next

Sleep 100
Do While ie.Busy = True Or ie.ReadyState <> READYSTATE_COMPLETE
Sleep 1
DoEvents
Loop

For Each anchor In ie.document.getElementsByTagName("A")
If anchor.innerText = "受信トレイ" Then
anchor.Click
Exit For
End if
Next

Set ie = Nothing

A 回答 (1件)

こんにちは



推測なので、当たってるかはずれているかわかりませんが・・・

>ログイン」ボタンがアクティブにならず~
プロシージャの問題というよりは、サイト側でなんらかのチェックを行っているのではないでしょうか?
(例えば、機械的なログインを避けるためとか…)
どのような状態になればアクティブになるのかを確認して、その状態を再現するようにしてあげればよいのではないでしょうか?

例えば、全てキー入力で(マウス等を一切使用せず)操作してみて、操作できるのなら、全部sendkeyで操作しちゃうとか・・(笑)
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
サイト側のチェックがある、というのは可能性としてはありそうですね。

アクティブになる条件としては、テキストボックスをクリックする、ログインボタンの上にカーソルを合わせる、などです。

キー入力でできたので、Sendkeysで操作させてみてもダメでした。
やっぱりセキュリティ的なところでできない可能性が一番たかそうです。

ありがとうございました!

お礼日時:2017/12/30 20:06

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!