こんばんは。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
No.1ベストアンサー
- 回答日時:
こんにちは
推測なので、当たってるかはずれているかわかりませんが・・・
>ログイン」ボタンがアクティブにならず~
プロシージャの問題というよりは、サイト側でなんらかのチェックを行っているのではないでしょうか?
(例えば、機械的なログインを避けるためとか…)
どのような状態になればアクティブになるのかを確認して、その状態を再現するようにしてあげればよいのではないでしょうか?
例えば、全てキー入力で(マウス等を一切使用せず)操作してみて、操作できるのなら、全部sendkeyで操作しちゃうとか・・(笑)
回答ありがとうございます。
サイト側のチェックがある、というのは可能性としてはありそうですね。
アクティブになる条件としては、テキストボックスをクリックする、ログインボタンの上にカーソルを合わせる、などです。
キー入力でできたので、Sendkeysで操作させてみてもダメでした。
やっぱりセキュリティ的なところでできない可能性が一番たかそうです。
ありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Excel(エクセル) 【エクセルマクロ】既に開いているIEの、サイズや表示位置を変更するには 4 2022/12/01 22:57
- Visual Basic(VBA) 動きっぱなしです。止め方とプロシージャの間違いを教えて下さい! 5 2022/08/15 23:08
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
GoogleChromeでレイアウトが左...
-
<IMG>のALIGN属性値「absmiddle...
-
VBA オブジェクトが必要です
-
ブラウザのエンコード 自動選...
-
起動済みのIEをハンドルから操...
-
WindowsとMacでのChromeのスタ...
-
Shift-JISでxml宣言するべき?
-
IEの[新規作成(N)]→[ウィンドウ...
-
DOCTYPE宣言はしなくていいの?
-
Mac IE5でのCSs文字化け
-
プルダウン(リストボックス)の...
-
エクセルでURLからタイトルのみ...
-
VBAでgetElementByTagName
-
XMLを作成してもタグしか表示さ...
-
テキストエリア内の改行禁止
-
長いURLを途中で改行(折り返す...
-
文字の最後に半角空白が勝手に...
-
改行できる・できない入力ボッ...
-
ツールチップの表示時間の調整
-
テーブルの幅を固定するとnowra...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
GoogleChromeでレイアウトが左...
-
HTMLのバージョンの確認方法は?
-
Macで見るとページが崩れます。
-
WindowsとMacでのChromeのスタ...
-
<IMG>のALIGN属性値「absmiddle...
-
プルダウン(リストボックス)の...
-
エクセルのシートをブラウザに...
-
スマホでページ内リンクができない
-
doc As HTMLdocumentのコンパイ...
-
tabキーによるfocusの当たり方...
-
主要ポータルサイトの多くがス...
-
VBA オブジェクトが必要です
-
VBAでgetElementByTagName
-
起動済みのIEをハンドルから操...
-
HTML文書を上書き保存してもブ...
-
DOCTYPE宣言はしなくていいの?
-
Shift-JISでxml宣言するべき?
-
ブラウザのエンコード 自動選...
-
WEBページからのメッセージをVBAで
-
ブラウザ依存のレイアウト・・...
おすすめ情報