こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

-広告-

解決済みの質問

【Excel VBA】ウェブサイトの自動ログイン

VBAでRedHatのホームページに自動ログインするプログラムを作成しています。

<コード>
Sub RedHat()

Dim objIE As InternetExplorer
Dim urlName As String

Set objIE = CreateObject("InternetExplorer.Application")

objIE.Visible = True

Call ieView(objIE, "https://idp.redhat.com/idp")

If objIE.LocationURL <> "https://idp.redhat.com/idp" Then

Call ieNavi(objIE, "https://www.redhat.com/wapps/ugc/protected/account.html")
Call tagClick(objIE, "li", "utility-account")
Call tagClick(objIE, "p", "ログアウト")
Call ieNavi(objIE, "https://idp.redhat.com/idp")

End If

Call formText(objIE, "username", "丸秘")
Call formText(objIE, "password", "丸秘")
Call tagClick(objIE, "button", "ログイン")

Set objIE = Nothing

End Sub

Function ieView(objIE As InternetExplorer, _
urlName As String)

objIE.navigate urlName

Call ieCheck(objIE)

End Function

Function ieCheck(objIE As InternetExplorer) As String

Do While objIE.Busy Or objIE.readyState < 4
DoEvents
Loop

End Function

Function tagClick(objIE As InternetExplorer, _
tagName As String, _
tagStr As String)

For Each objTag In objIE.document.getElementsByTagName(tagName)
If InStr(objTag.outerHTML, tagStr) > 0 Then
objTag.Click
Call ieCheck(objIE)
Exit For
End If
Next

End Function

Function ieNavi(objIE As InternetExplorer, _
urlName As String)

objIE.navigate urlName

Call ieCheck(objIE)

End Function

Function formText(objIE As InternetExplorer, _
nameValue As String, _
tagValue As String)

For Each objTag In objIE.document.getElementsByTagName("input")

If objTag.Name = nameValue Then
objTag.Value = tagValue
Exit For
End If

Next

For Each objTag In objIE.document.getElementsByTagName("textarea")

If objTag.Name = nameValue Then
objTag.Value = tagValue
Exit For
End If

Next

End Function

"丸秘"をユーザとパスワードに修正し、
実行しました。

実行後、IE画面で以下のメッセージが表示されます。
「RedHatのログイン画面でユーザ名またはパスワードが無効です」
ユーザ欄がクリックされている状態になります。

すみません。どの行を何に修正すれば、正常に動作しますでしょうか?
教えていただけますと幸いです。

引用元:http://www.vba-ie.net/application/twitter-login.html

投稿日時 - 2016-01-13 11:57:55

QNo.9110605

すぐに回答ほしいです

質問者が選んだベストアンサー

こんにちは

Sub RedHat()
  Dim objIE As InternetExplorer
  Dim urlName As String
  
  Set objIE = CreateObject("InternetExplorer.Application")
  
  objIE.Visible = True
  
  Call ieView(objIE, "https://idp.redhat.com/idp")
  
  If objIE.LocationURL <> "https://idp.redhat.com/idp/" Then
    Call ieNavi(objIE, "https://www.redhat.com/wapps/ugc/protected/account.html")
    Call tagClick(objIE, "li", "utility-account")
    Call tagClick(objIE, "p", "ログアウト")
    Call ieNavi(objIE, "https://idp.redhat.com/idp")
  End If
  
  Call formText(objIE, "j_username", "丸秘")
  Call formText(objIE, "j_password", "丸秘")
  Call tagClick(objIE, "button", "ログイン")
  
  Set objIE = Nothing
End Sub

こうすると、どうなりますか?

投稿日時 - 2016-01-13 12:22:56

お礼

こんばんは。

回答いただき、有難うございました。
想定の動作を行うことが出来ました。

投稿日時 - 2016-01-13 12:56:43

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(1)

-広告-
-広告-
-広告-
-広告-