2010-11-22 2 views
1

VBA (전기 톱이있는 회사의 빨간 테이프를 자르는 것)로 개발하는 데는 큰 힘이되어 다양한 추가 기능 참조로 이러한 매크로를 확장하는 데 큰 도움이되었습니다. (IE, Excel, Outlook 및 Word 자동화 개체, IE는 최고의 '트릭'입니다.)VBA를 사용하여 웹 양식 개체의 속성/메서드/이벤트를 열거하는 방법

어쨌든, 웹 페이지에서 주어진 객체의 OOP '내장'목록을 얻을 수있는 방법이 궁금합니다. IDE에서 힌트를 얻을 수 없기 때문입니다. 여기

는 확인 shdocvw.dll을이 참조되어 있는지 확인하고, 'www.mywebsite.com'추정에 로그인하는 사용자 이름 및 암호 텍스트 상자뿐만 아니라 버튼이 몇 가지 예제 코드입니다 :

Sub MyIEAutomationExample 
    Dim IE as InternetExplorer 
    Set IE = CreateObject("InternetExplorer.Application") 
    IE.Navigate ("http://www.mywebsite.com") 

    Do Until IE.ReadyState = READYSTATE_COMPLETE 'Delay for loading page 
    Loop 

    IE.Document.all.Item("tbxUserName").Value = "Nxwtypx" 
    IE.Document.all.Item("tbxPassword").Value = InputBox("Please enter your password.") 
    IE.Document.all.Item("btnLogin").Click 
End Sub 

내 마음에 질문, 만약 내가 tbxUserName, tbxPassword, 또는 btnLogin의 다른 속성/방법/이벤트를 확인하고 싶다면 무엇입니까? 표준 객체에 사용할 수있는 참조가 있습니까?

그런데도, 내가 아는 모두를 위해, 사내에서 개발 한 서식있는 텍스트 상자 같은 꼬마 개체는 어떨까요?

+0

시계 추가는 어떻습니까? – Fionnuala

답변

0

당신이보고있는 표준 HTML 페이지라면 InternetExplorer 개체의 document 속성은 HTMLDocument 개체를 반환해야합니다. "Microsoft HTML Object Library"에 대한 참조를 추가하면 HTMLDocument의 개체 모델을 볼 수 있습니다.

개별 HTML 요소에 대한 세부 정보는 "HTML"+ 요소 이름 + "요소"에서 확인할 수 있습니다. 예를 들어, button 요소에 대한 세부 정보는 HTMLButtonElement

에서 확인할 수 있습니다. 비표준 개체에 대해 알아낼 수 있는지 잘 모르겠습니다. Remou의 제안을 시계를 추가하는 것이 좋습니다 수 있습니다 여기에. 그런 다음 조사 식 창을 사용하여 비표준 개체에 해당하는 노드를 찾고 노출되는 속성 (있는 경우)을 볼 수 있습니다.

마지막으로,보고있는 문서가 XHTML 또는 XML 형식 인 경우 XMLHttpRequest (InternetExplorer 대신)를 사용하여 XPath라는보다 강력한 언어를 사용하여 검사 할 노드를 찾을 수 있습니다 - 자세한 내용은 this answer to a different question을 참조하십시오.