2010-11-22 43 views
1

我很擅長使用VBA開發(用鏈鋸切割企業繁文tape節),並且已經熟練地使用各種附加參考擴展這些宏(IE,Excel,Outlook和Word自動化對象,其中IE是我最好的'技巧')。如何使用VBA枚舉Web表單對象的屬性/方法/事件

無論如何,我很好奇我怎樣才能得到一個網頁上給定對象的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的其他屬性/方法/事件是什麼?標準對象是否有某種引用可用?

即使如此,我知道的內部開發的像Rich Text Boxes這樣的kinkier對象怎麼樣?

+0

如何添加手錶? – Fionnuala 2010-11-22 16:51:15

回答

0

如果它是您正在查看的標準HTML頁面,那麼InternetExplorer對象的document屬性應返回HTMLDocument對象。如果添加對「Microsoft HTML Object Library」的引用,則可以看到HTMLDocument的對象模型。

單個HTML元素的詳細信息可以在「HTML」+元素名稱+「元素」下找到。例如,button元素的詳細信息可在HTMLButtonElement

中找到我不確定您可以找到關於非標準對象的內容。 Remou建議添加手錶可能是最好的主意。然後,您可以使用Watch窗口查找與非標準對象相對應的節點,並查看它公開的屬性(如果有)。最後,如果您正在查看的文檔採用XHTML或XML格式,那麼您可能需要使用XMLHttpRequest(而不是InternetExplorer),因爲這樣可以使用功能更強大的稱爲XPath的lanaguage來定位要檢查的節點 - 詳情請參閱this answer to a different question