私はVBAスクリプトでいくつかのIEの自動化をやっている、といくつかの理由のために私のコードのVBAスクリプトの動作が予測できないのはなぜですか?
「に設定IE =のCreateObject(」InternetExplorer.Application「)」
ラインは、それがするのでループしているように見えます1つではなく、3-7のIEブラウザを起動することがあります。最も悪化しているのは、自分のマシンで正常に動作することですが、他の人に電子メールを送信すると、通常正しく動作しません。
Private Sub LauncherButton_Click()
'Here an instance of Internet Explorer is created,
' and pointed at the login page
Dim IE As InternetExplorer
Set IE = CreateObject("InternetExplorer.Application")
URL = "www.google.com"
IE.Visible = True
IE.Navigate URL
'The script waits for Internet Explorer to finish loading
Application.Wait Now + TimeValue("00:00:03")
'Here the login info is taken from the user inputs and entered
' login page
ID = Worksheets("home").Range("B25")
PW = Worksheets("home").Range("B26")
Application.SendKeys ID, True
Application.SendKeys "{TAB}", True
Application.SendKeys PW, True
Application.SendKeys "{TAB}", True
Application.SendKeys "{TAB}", True
Application.SendKeys "{TAB}", True
'This command will 'click' the login button, it will remain
' commented until a user with access can run the script
'Application.SendKeys "~", True
'After the login info is entered it is removed from memory
Worksheets("home").Range("B25").Clear
Worksheets("home").Range("B26").Clear
ID = ""
PW = ""
End Sub
実際のターゲットにはイントラネットでしか到達できないため、私はゴーグルに変更しました。また、ログインページがロードされていないため、sendKeys部分は無関係です。
マイクロソフトのライブラリ、インターネットコントロール、HTMLを使用して適切なオブジェクトを使用することをお勧めします。また、3秒のループではなく読み取りとステータスを使用することをお勧めします。 'getElementByID(" UserName ")。value = ID' –
ありがとう、私はそれを探しています。私はこれらの変更を行うと、私はこの記事を更新する –
要素を取得する別の方法はありますか? htmlコードには、idプロパティやtagプロパティはありません。 –