ExcelVBA에서 IE에서 사용자 ID 및 비밀번호 ( "*"로 마스크)를 입력하여 로그인합니다.
Excel에서 비밀번호를 "*"로 표시
ExcelVBA에서 IE에서 사용자 ID와 비밀번호를 입력하고 로그인합니다.
시트 1에는 다음 로그인 버튼이 있습니다.
시트 2에는 다음 로그인 버튼이 있습니다.
같은 매크로를 사용하여 어느 쪽이든 로그인 할 수 있도록 만들었습니다.
VBA 소스 코드
Sub login()
Dim objIE As InternetExplorer 'IEオブジェクトを準備
Set objIE = CreateObject("Internetexplorer.Application") '新しいIEオブジェクトを作成してセット
objIE.Visible = True 'IEを表示
Dim strUrl As String '次ページのURL
strUrl = "https://connpass.com/login/"
objIE.navigate strUrl 'IEでURLを開く
Do While objIE.Busy = True Or objIE.readyState < READYSTATE_COMPLETE '読み込み待ち
DoEvents
Loop
Dim strUsername As String
strUsername = GetUsername
Dim strPassword As String
strPassword = GetPassword
Dim htmlDoc As HTMLDocument 'HTMLドキュメントオブジェクトを準備
Set htmlDoc = objIE.document 'objIEで読み込まれているHTMLドキュメントをセット
htmlDoc.getElementsByName("username")(0).Value = strUsername 'name="username"にユーザー名を入力
htmlDoc.getElementsByName("password")(0).Value = strPassword 'name="password"にパスワードを入力
htmlDoc.getElementById("login_form").submit 'フォームの内容を送信
End Sub
Function GetUsername() As String
Dim username As String
username = ActiveSheet.Range("C3").Value 'ユーザー名を取得する
GetUsername = username
End Function
Function GetPassword() As String
Dim password As String
If Range("C4").Value = "" Then
password = ActiveSheet.OLEObjects("TextBox3").Object.Value 'パスワードをテキストボックスから取得する
Else
password = Range("C4").Value 'パスワードをセルから取得する
End If
GetPassword = password
End Function
비망록
ActiveX 컨트롤을 사용할 때 OLEObject 사용
텍스트 상자에서 값을 얻는 방법을 조사하고 처음에는 "strPassword = TextBox3.Value"라고 썼습니다.
그러면 "객체가 필요합니다"라는 오류에.
이쪽으로는 객체가 있는 잖아··라고 생각하면서.
그러나 ActiveX 컨트롤의 개체는 검색 방법이 다른 것 같습니다.
각 OLEObject 개체는 ActiveX 컨트롤, 연결된 OLE 개체 또는 포함된 OLE 개체를 나타냅니다.
OLEObjects 개체(Excel)
★ ActiveX 컨트롤을 사용할 때는 OLEObject를 사용하는 것
반환값을 돌려주는 메소드에는, Function 프로시저를 사용하는 것
이번 유저 네임을 취득하는 곳과 패스워드를 취득하는 곳을, 밖에 내 보았습니다.
그러나 꽤 잘 작동하지 않는 이유는 "Sub 프로 시저"와 "Function 프로 시저"의 차이를 알지 못했기 때문입니다.
Sub 프로 시저 : 반환 값 없음
Function 프로 시저 : 반환 값을 반환 할 수 있습니다.
【VBA】Sub/Function 프로시저의 차이와 사용법 【Excel 매크로】
처음에는 Sub 프로 시저로 작성했기 때문에 반환 값을받지 못한 것 같습니다.
★ 반환값을 돌려주는 메소드에는, Function 프로시저를 사용하는 것
Reference
이 문제에 관하여(ExcelVBA에서 IE에서 사용자 ID 및 비밀번호 ( "*"로 마스크)를 입력하여 로그인합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/salmonosushi/items/5f57e8f70ec99b5fab32
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Sub login()
Dim objIE As InternetExplorer 'IEオブジェクトを準備
Set objIE = CreateObject("Internetexplorer.Application") '新しいIEオブジェクトを作成してセット
objIE.Visible = True 'IEを表示
Dim strUrl As String '次ページのURL
strUrl = "https://connpass.com/login/"
objIE.navigate strUrl 'IEでURLを開く
Do While objIE.Busy = True Or objIE.readyState < READYSTATE_COMPLETE '読み込み待ち
DoEvents
Loop
Dim strUsername As String
strUsername = GetUsername
Dim strPassword As String
strPassword = GetPassword
Dim htmlDoc As HTMLDocument 'HTMLドキュメントオブジェクトを準備
Set htmlDoc = objIE.document 'objIEで読み込まれているHTMLドキュメントをセット
htmlDoc.getElementsByName("username")(0).Value = strUsername 'name="username"にユーザー名を入力
htmlDoc.getElementsByName("password")(0).Value = strPassword 'name="password"にパスワードを入力
htmlDoc.getElementById("login_form").submit 'フォームの内容を送信
End Sub
Function GetUsername() As String
Dim username As String
username = ActiveSheet.Range("C3").Value 'ユーザー名を取得する
GetUsername = username
End Function
Function GetPassword() As String
Dim password As String
If Range("C4").Value = "" Then
password = ActiveSheet.OLEObjects("TextBox3").Object.Value 'パスワードをテキストボックスから取得する
Else
password = Range("C4").Value 'パスワードをセルから取得する
End If
GetPassword = password
End Function
ActiveX 컨트롤을 사용할 때 OLEObject 사용
텍스트 상자에서 값을 얻는 방법을 조사하고 처음에는 "strPassword = TextBox3.Value"라고 썼습니다.
그러면 "객체가 필요합니다"라는 오류에.
이쪽으로는 객체가 있는 잖아··라고 생각하면서.
그러나 ActiveX 컨트롤의 개체는 검색 방법이 다른 것 같습니다.
각 OLEObject 개체는 ActiveX 컨트롤, 연결된 OLE 개체 또는 포함된 OLE 개체를 나타냅니다.
OLEObjects 개체(Excel)
★ ActiveX 컨트롤을 사용할 때는 OLEObject를 사용하는 것
반환값을 돌려주는 메소드에는, Function 프로시저를 사용하는 것
이번 유저 네임을 취득하는 곳과 패스워드를 취득하는 곳을, 밖에 내 보았습니다.
그러나 꽤 잘 작동하지 않는 이유는 "Sub 프로 시저"와 "Function 프로 시저"의 차이를 알지 못했기 때문입니다.
Sub 프로 시저 : 반환 값 없음
Function 프로 시저 : 반환 값을 반환 할 수 있습니다.
【VBA】Sub/Function 프로시저의 차이와 사용법 【Excel 매크로】
처음에는 Sub 프로 시저로 작성했기 때문에 반환 값을받지 못한 것 같습니다.
★ 반환값을 돌려주는 메소드에는, Function 프로시저를 사용하는 것
Reference
이 문제에 관하여(ExcelVBA에서 IE에서 사용자 ID 및 비밀번호 ( "*"로 마스크)를 입력하여 로그인합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/salmonosushi/items/5f57e8f70ec99b5fab32텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)