Как перечислить свойства / методы / события объекта веб-формы с помощью VBA - PullRequest
2 голосов
/ 22 ноября 2010

Я большой в разработке с VBA (прорезает корпоративную волокиту с помощью бензопилы) и стал ловким в расширении этих макросов с помощью различных ссылок на надстройки (IE, Excel, Outlook и объекты автоматизации Word, IE из которыхэто мой лучший «трюк»).

В любом случае, мне любопытно, как я могу получить список ООП-«кишок» данного объекта на веб-странице, поскольку моя среда 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, насколько я знаю, которые были разработаны собственными силами?

Ответы [ 2 ]

1 голос
/ 18 июня 2018

Я мало что могу придумать, чтобы немедленно добавить к уже приведенному ответу, кроме того, что я часто использую функцию TypeName, например,

typename(myVariableOfInterest)

Typename

Возвращает строку, содержащую информацию о переменной.


Например, при работе с веб-страницей я мог бы написать:

Dim a As Object: Set a = .document.getElementById("elementID")

И затем в ближайшем окне выполните

TypeName(a)

, который обычно говорит мне тип данных, с которым я работаю, например, HTMLTable.

Я беру возвращенную строку и затем либо, вбез определенного порядка:

  1. Google , чтобы найти перечисленные методы / свойства
  2. MSDN Поиск разработчика , чтобы найти перечисленные методы / свойства
  3. Используйте браузер объектов в Excel для поиска строки и перечисленных методов / свойств
1 голос
/ 23 ноября 2010

Если вы просматриваете стандартную HTML-страницу, то свойство document объекта InternetExplorer должно возвращать объект HTMLDocument. Если вы добавите ссылку на «Библиотеку объектов Microsoft HTML», вы сможете увидеть объектную модель для HTMLDocument.

Подробности для отдельных элементов HTML можно найти в разделе «HTML» + имя элемента + «Элемент». Например, подробности для button элементов находятся в HTMLButtonElement

Я не уверен, что вы можете узнать о нестандартных объектах. Предложение Рему о добавлении часов может быть лучшей идеей здесь. Затем вы можете использовать окно Watch, чтобы найти узел, который соответствует нестандартному объекту, и посмотреть, какие (если есть) свойства он предоставляет.

Наконец, если документ, который вы просматриваете, имеет формат XHTML или XML, вы можете использовать XMLHttpRequest (вместо InternetExplorer), поскольку это позволяет вам использовать более мощный язык, называемый XPath, для поиска узлов, которые вы хотите исследовать - см. этот ответ на другой вопрос для деталей

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...