Друзья подскажите возможно ли это. |
|
sva Пользователь Сообщений: 1027 |
Возможно все http://www.planetaexcel.ru/forum.php?thread_id=35717 Остается переделать под ваши нужды. |
Да с курсами валют оч занятно но вникнуть пока не получается. |
|
egonomist Пользователь Сообщений: 409 |
Заполнить строку поиска и нажать на кнопку через vba можно используя webbrowser. «Нужно чтобы Макрос кликал например на сайте Яндекса по кнопке «Найти»» создайте форму, всавьте на нее элемент webbrowser, на код открытия формы повесить вот такой макрос |
sva Пользователь Сообщений: 1027 |
Так Вам нужно с Яндекса или с Авито? |
Я просто пытаюсь понять суть, просто хотелось получить пример с авито или яндекса что бы дальше разобраться самому. egonomist: Вы могли бы сделать пример, битый час пытаюсь сделать но не получается. |
|
Владимир Пользователь Сообщений: 8196 |
Вообще, у меня такой вопрос часто возникает. Но думал не Экселевского ума это дело. Я пишу в определенном столбец, скажем D (D1,D2,D3 и т.д), ссылки на сайты, на которых должен производится поиск. А в А1 забиваю фразу которая будет искаться. Нажимаю кнопочку макроса. Опера сама открывает эти сайты, вставляет туда эту фразу и .. все сайты остаются открытыми. Затем я прохожу и просматриваю, что, где нашлось… Было бы здорово иметь такой поиск. В основном мне это нужно для поиска автозапчасти. Спасибо. ——— «..Сладку ягоду рвали вместе, горьку ягоду я одна.» |
sva Пользователь Сообщений: 1027 |
Вот с avito забирает первые три объявления, из региона Москва, по введенному слову, и формирует гиперссылки на эти объявления. |
egonomist Пользователь Сообщений: 409 |
tintin: http://www.planetaexcel.ru/forum.php/links.php?thread_id=8251 добавил одну кнопку — поиск http://www.planetaexcel.ru/forum.php?thread_id=38428 в итоге — открываете книгу — пишите в ячейке B11 что надо найти — нажимаете квадратик с надписью internet — загружается браузер — щелкаете кнопку поиск. если нужно без окошка webbrowser то опять же все тут http://www.planetaexcel.ru/forum.php?thread_id=38428 Владимир: я не знаю как в explorer открывать программно вкладки, поэтому пока управление только одной вкладкой — одна ссылка. Для каждого сайта надо найти element для ввода текста и кнопку. |
{quote}{login=sva}{date=01.03.2012 12:20}{thema=}{post}Вот с avito забирает первые три объявления, из региона Москва, по введенному слову, и формирует гиперссылки на эти объявления.{/post}{/quote} Просто супер! Спасибо Огромное! т.е. на сайт я например зашел сам, сам ввел слово шкаф, а при нажатии в экселе «Запрос» нужен клик на авито — Найти |
|
sva Пользователь Сообщений: 1027 |
В моем примере нужно только вводить нужные слова в inputbox, и нажимать кнопку. |
Для самообразования )) |
|
sva Пользователь Сообщений: 1027 |
Я ленюсь, да и некогда мне сейчас |
{quote}{login=egonomist}{date=01.03.2012 12:34}{thema=}{post}…в watch window идем по иерархии- |
|
egonomist Пользователь Сообщений: 409 |
1) в редакторе visual basic в верхней панели View — Watch window |
Спасибо огромное за подсказку) |
|
блин..совершенно не понятно как Вы определили что итем 0 это текстовое поле, а итем 2 кнопка…более того я там даже итем 0 то и не нашёл…блин((( у меня в элементс только итем 1, 2 и 3… |
|
Ребят а подскажите пожалуйста, как подправить код, чтобы все эти запросы работали через гугл хром? |
|
Никак не подправить. |
|
subtlety Пользователь Сообщений: 375 |
надстройка: http://www.rondebruin.nl/Google.htm выдает результаты поиска в браузере по умолчанию (Firefox у меня) |
а что именно надо?? в чем затык? |
|
да вот не могу определить что item 0 — текстовое поле, а item 2 — кнопка, помимо этого у меня даже нету итем 0 на сайте www.ya.ru по пути: webbrowser — document — forms — item1 — elemets — …. |
|
Geo28 Пользователь Сообщений: 6 |
усе..вроде без итемов справился..только вот нужна помощь, подскажите как сделать так чтобы при активации определенной ячейки браузер открывался, а когда активируется след ячейка то закрывался? и второе как сделать чтобы например при активации ячейки а1 браузер автоматом открывался на яндексе, а при активации на в1 на гугле…неужели вторую форму надо создавать.. |
Юрий М Модератор Сообщений: 60586 Контакты см. в профиле |
А в А1 и В1 соответствующие гиперссылки — не выход? |
Geo28 Пользователь Сообщений: 6 |
нее..планируется в а1 и в1 вбивать цифры, при активации а1 сразу автоматом открывается браузер на нужном сайте и можно проверить какое значение внести в а1, потом вбиваются другие знач в других ячеках — там а2 а3 а4 и когда дело доходит до в1 снова откр браузер на другом уже сайте, со значениями для в1.. |
Юрий М Модератор Сообщений: 60586 Контакты см. в профиле |
#26 13.05.2012 10:56:30 Можно так. Прикрепленные файлы
|
Парсить сайты в Excel достаточно просто если использовать облачную версию софта Google Таблицы (Sheets/Doc), которые без труда позволяют использовать мощности поисковика для отправки запросов на нужные сайты.
- Подготовка;
- IMPORTXML;
- IMPORTHTML;
- Обратная конвертация.
Видеоинструкция
Подготовка к парсингу сайтов в Excel (Google Таблице)
Для того, чтобы начать парсить сайты потребуется в первую очередь перейти в Google Sheets, что можно сделать открыв страницу:
https://www.google.com/intl/ru_ru/sheets/about/
Потребуется войти в Google Аккаунт, после чего нажать на «Создать» (+).
Теперь можно переходить к парсингу, который можно выполнить через 2 основные функции:
- IMPORTXML. Позволяет получить практически любые данные с сайта, включая цены, наименования, картинки и многое другое;
- IMPORTHTML. Позволяет получить данные из таблиц и списков.
Однако, все эти методы работают на основе ссылок на страницы, если таблицы с URL-адресами нет, то можно ускорить этот сбор через карту сайта (Sitemap). Для этого добавляем к домену сайта конструкцию «/robots.txt». Например, «seopulses.ru/robots.txt».
Здесь открываем URL с картой сайта:
Нас интересует список постов, поэтому открываем первую ссылку.
Получаем полный список из URL-адресов, который можно сохранить, кликнув правой кнопкой мыши и нажав на «Сохранить как» (в Google Chrome).
Теперь на компьютере сохранен файл XML, который можно открыть через текстовые редакторы, например, Sublime Text или NotePad++.
Чтобы обработать информацию корректно следует ознакомиться с инструкцией открытия XML-файлов в Excel (или создания), после чего данные будут поданы в формате таблицы.
Все готово, можно переходить к методам парсинга.
IPMORTXML для парсинга сайтов в Excel
Синтаксис IMPORTXML в Google Таблице
Для того, чтобы использовать данную функцию потребуется в таблице написать формулу:
=IMPORTXML(Ссылка;Запрос)
Где:
- Ссылка — URL-адрес страницы;
- Запрос – в формате XPath.
С примером можно ознакомиться в:
https://docs.google.com/spreadsheets/d/1xmzdcBPap6lA5Gtwm1hjQfDHf3kCQdbxY3HM11IqDqY/edit#gid=0
Примеры использования IMPORTXML в Google Doc
Парсинг названий
Для работы с парсингом через данную функцию потребуется знание XPATH и составление пути в этом формате. Сделать это можно открыв консоль разработчика. Для примера будет использоваться сайт крупного интернет-магазина и в первую очередь необходимо в Google Chrome открыть окно разработчика кликнув правой кнопкой мыли и в выпавшем меню выбрать «Посмотреть код» (сочетание клавиш CTRL+Shift+I).
После этого пытаемся получить название товара, которое содержится в H1, единственным на странице, поэтому запрос должен быть:
//h1
И как следствие формула:
=IMPORTXML(A2;»//h1″)
Важно! Запрос XPath пишется в кавычках «запрос».
Парсинг различных элементов
Если мы хотим получить баллы, то нам потребуется обратиться к элементу div с классом product-standart-bonus поэтому получаем:
//div[@class=’product-standart-bonus’]
В этом случае первый тег div обозначает то, откуда берутся данные, когда в скобках [] уточняется его уникальность.
Для уточнения потребуется указать тип в виде @class, который может быть и @id, а после пишется = и в одинарных кавычках ‘значение’ пишется запрос.
Однако, нужное нам значение находиться глубже в теге span, поэтому добавляем /span и вводим:
//div[@class=’product-standart-bonus’]/span
В документе:
Парсинг цен без знаний XPath
Если нет знаний XPath и необходимо быстро получить информацию, то требуется выбрав нужный элемент в консоли разработчика кликнуть правой клавишей мыши и в меню выбрать «Copy»-«XPath». Например, при поиске запроса цены получаем:
//*[@id=»showcase»]/div/div[3]/div[2]/div[2]/div[1]/div[2]/div/div[1]
Важно! Следует изменить » на одинарные кавычки ‘.
Далее используем ее вместе с IMPORTXML.
Все готово цены получены.
Простые формулы с IMPORTXML в Google Sheets
Чтобы получить title страницы необходимо использовать запрос:
=IMPORTXML(A3;»//title»)
Для вывода description стоит использовать:
=IMPORTXML(A3;»//description»)
Первый заголовок (или любой другой):
=IMPORTXML(A3;»//h1″)
IMPORTHTML для создания парсера веи-ресурсов в Эксель
Синтаксис IMPORTXML в Google Таблице
Для того, чтобы использовать данную функцию потребуется в таблице написать формулу:
=IMPORTXML(Ссылка;Запрос;Индекс)
Где:
- Ссылка — URL-адрес страницы;
- Запрос – может быть в формате «table» или «list», выгружающий таблицу и список, соответственно.
- Индекс – порядковый номер элемента.
С примерами можно ознакомиться в файле:
https://docs.google.com/spreadsheets/d/1GpcGZd7CW4ugGECFHVMqzTXrbxHhdmP-VvIYtavSp4s/edit#gid=0
Пример использования IMPORTHTML в Google Doc
Парсинг таблиц
В примерах будет использоваться данная статья, перейдя на которую можно открыть консоль разработчика (в Google Chrome это можно сделать кликнув правой клавишей мыши и выбрав пункт «Посмотреть код» или же нажав на сочетание клавиш «CTRL+Shift+I»).
Теперь просматриваем код таблицы, которая заключена в теге <table>.
Данный элемент можно будет выгрузить при помощи конструкции:
=IMPORTHTML(A2;»table»;1)
- Где A2 ячейка со ссылкой;
- table позволяет получить данные с таблицы;
- 1 – номер таблицы.
Важно! Сам запрос table или list записывается в кавычках «запрос».
Парсинг списков
Получить список, заключенный в тегах <ul>…</ul> при помощи конструкции.
=IMPORTHTML(A2;»list»;1)
В данном случае речь идет о меню, которое также представлено в виде списка.
Если использовать индекс третей таблицы, то будут получены данные с третей таблицы в меню:
Формула:
=IMPORTHTML(A2;»list»;2)
Все готово, данные получены.
Обратная конвертация
Чтобы превратить Google таблицу в MS Excel потребуется кликнуть на вкладку «Файл»-«Скачать»-«Microsoft Excel».
Все готово, пример можно скачать ниже.
Пример:
https://docs.google.com/spreadsheets/d/1xmzdcBPap6lA5Gtwm1hjQfDHf3kCQdbxY3HM11IqDqY/edit
На первый взгляд Excel и парсинг понятия несовместимые. Как с помощью табличного редактора можно получать информацию из сети? И ведь многие недооценивают Excel, а это вполне посильная задача для него. При этом все делается стандартными методами без необходимости дополнительно что-то устанавливать/настраивать.
Разберем на конкретном примере по получению информации с сайта Минюста, а именно, нам необходим перечень действующих адвокатов Российской Федерации. Кнопки «выгрузить списочно всех адвокатов» — конечно же, нет. На официальном сайте http://lawyers.minjust.ru/ выводится по 20 адвокатов на 1 странице, всего 74 754 страниц, итого на выходе мы должны получить чуть меньше 150 тыс. адвокатов.
Для начала открываем VBA и создаем объект InternetExplorer, посредством которого будем получать данные.
Затем надо определить, как будем переходить между страницами на сайте – для этого просматриваем элемент перехода на следующую страницу. Ссылка между станицами отличается значением в конце и соответствует номеру страницы – 1.
Имея информацию о ссылке страницы — осуществляем их перебор, загружаем в InternetExplorer и забираем все данные со страницы.
В коде страницы представлена структура таблицы со всеми столбцами, которые нам необходимы: реестровый номер, ФИО адвоката, субъект РФ, номер удостоверения, текущий статус.
Для получения этой информации с помощью ключевых слов осуществляем поиск по тегам и забираем требуемые данные.
В итоге получаем список всех адвокатов в таблицу Excel для дальнейшей обработки.
- Интернет
- Поиск в интернете
- Интернет-порталы
- Поиск в Excel
- Контекстное меню
- Средства Windows
Макрос предназначен для поиска текста из выделенных ячеек в поисковой системе Google.
Функция поиска доступна из контекстного меню ячеек:
Как вы можете видеть на скриншоте, есть возможность выбора браузера.
На выбор представлены наиболее популярные браузеры: Internet Explorer, Mozilla Firefox, Opera, и Google Chrome.
В макрос намеренно введено ограничение на количество ячеек, текст из которых можно одномоментно запустить в поиск.
Если количество уникальных непустых значений в выделенных ячейках превысит 20, поиск будет отменён,
а пользователь увидит сообщение с предупреждением:
Код (см. пример в прикреплённом файле) состоит из 2 макросов.
Макрос CreateItemsInCellContextMenu запускается автоматически, при каждом щелчке правой кнопкой мыши на листе,
и добавляет новые пункты в контекстное меню ячейки.
Sub CreateItemsInCellContextMenu() On Error Resume Next PopularBrowsers = Array("Internet Explorer", "Mozilla Firefox", "Opera", "Google Chrome") Application.CommandBars("cell").Reset ' сброс контекстного меню ячеек Application.CommandBars("cell").Controls(1).BeginGroup = True ' черточка над первым пунктом меню ' добавляем пункты в контекстное меню ячеек With Application.CommandBars("cell").Controls.Add(10, , , 1) .Caption = "Искать через другой браузер ..." ' добавляем подпункты в меню For Each browser In PopularBrowsers ' для каждого браузера - свой подпункт меню With .Controls.Add(1, , , 1) ' добавляем пункт меню .OnAction = "SearchValuesInWeb" ' назначаем кнопке макрос SearchValuesInWeb .Caption = browser: .Tag = browser ' в свойстве TAG запоминаем название браузера End With Next End With ' отдельный пункт - для поиска в браузере, установленном в системе по-умолчанию With Application.CommandBars("cell").Controls.Add(1, , , 1) .OnAction = "SearchValuesInWeb" ' назначаем кнопке макрос SearchValuesInWeb .Caption = "Искать в Google в браузере по-умолчанию" End With End Sub
Макрос SearchValuesInWeb запускается, когда вы щелкаете на одном из добавленных в меню пунктов,
определяет, в каком браузере надо выполнить поиск, и запускает поиск каждого значения из выделенного диапазона.
Sub SearchValuesInWeb() ' Макрос открывает в выбранном браузере результаты поиска значений из ячеек ' поиск производится в Google On Error Resume Next: Err.Clear browser$ = Application.CommandBars.ActionControl.Tag ' читаем параметр из свойства TAG If Err Then Exit Sub ' запуск не из контекстного меню maxCellsCount = 20 ' больше 20 ячеек - отказываемся от запуска поиска Dim coll As New Collection ' берем только непустые уникальные значения из выделенного диапазона ячеек Dim ra As Range: Set ra = Intersect(Selection, ActiveSheet.UsedRange) arr = ra.Value: If ra.Cells.Count = 1 Then arr = Array(ra(1)) For Each Item In arr If Len(Trim(Item)) Then coll.Add CStr(Trim(Item)), CStr(Trim(Item)) If coll.Count > maxCellsCount Then Exit For Next ' если случайно запустить поиск тысячи значений - комп подвиснет надолго... If coll.Count > maxCellsCount Then msg = "Количество значений для поиска провысило ограничение в " & maxCellsCount & " ячеек!" MsgBox msg, vbExclamation, "Слишком много значений - поиск отменяется" Exit Sub End If ' формируем путь к выбранному браузеру (в реестре нужную информацию выкопать сложно...) ' не факт, что быдет работать на всех компах (программы могли быть установлены в другие папки) Select Case browser$ ' "Internet Explorer", "Mozilla Firefox", "Opera", "Google Chrome" Case "Internet Explorer" Path$ = """" & Environ("ProgramFiles") & "Internet ExplorerIEXPLORE.EXE" & """" Case "Mozilla Firefox" Path$ = """" & Environ("ProgramFiles") & "Mozilla Firefoxfirefox.exe" & """ -new-tab " Case "Opera" Path$ = """" & Environ("ProgramFiles") & "Operaopera.exe" & """" Case "Google Chrome" Path$ = """" & Environ("USERPROFILE") & "Local SettingsApplication Data" _ & "GoogleChromeApplicationchrome.exe" & """" End Select ' проверяем существование исполняемого файла браузера Path2$ = Path$: If Dir(Split(Path$, Chr(34))(1), vbNormal) = "" Then Path2$ = "" For Each Item In coll ' перебираем все уникальные значения ячеек ' формируем поисковую ссылку для Google n = n + 1: link$ = """" & "http://www.google.ru/search?hl=ru&newwindow=1&q=" & Item & """" If browser$ = "" Then ' открываем ссылку в браузере "по-умолчанию" CreateObject("wscript.shell").Run link$ Else ' запускаем нужный браузер If Len(Path2$) Then ' если exe-файл нужного браузера найден, то ' запускаем браузер для открытия ссылки CreateObject("wscript.shell").Run Path$ & " " & link$ Else ' выводим сообщение, что браузер не найден Debug.Print "Browser " & browser$ & " not found: " & Path$ End If End If ' после первой ссылки дожидаемся запуска браузера (1 секунду) If n = 1 Then Application.Wait Now + 1 / 86400 Next End Sub
- 38640 просмотров
Не получается применить макрос? Не удаётся изменить код под свои нужды?
Оформите заказ у нас на сайте, не забыв прикрепить примеры файлов, и описать, что и как должно работать.
Пользовательские функции VBA Excel для парсинга сайтов, html-страниц и файлов, возвращающие их текстовое содержимое. Примеры записи текста в переменную.
Парсинг html-страниц (msxml2.xmlhttp)
Пользовательская функция GetHTML1 (VBA Excel) для извлечения (парсинга) текстового содержимого из html-страницы сайта по ее URL-адресу с помощью объекта «msxml2.xmlhttp»:
Function GetHTML1(ByVal myURL As String) As String On Error Resume Next With CreateObject(«msxml2.xmlhttp») .Open «GET», myURL, False .send Do: DoEvents: Loop Until .readyState = 4 GetHTML1 = .responseText End With End Function |
Парсинг сайтов (WinHttp.WinHttpRequest.5.1)
Пользовательская функция GetHTML2 (VBA Excel) для извлечения (парсинга) текстового содержимого из html-страницы сайта по ее URL-адресу с помощью объекта «WinHttp.WinHttpRequest.5.1»:
Function GetHTML2(ByVal myURL As String) As String On Error Resume Next With CreateObject(«WinHttp.WinHttpRequest.5.1») .Open «GET», myURL, False .send Do: DoEvents: Loop Until .readyState = 4 GetHTML2 = .responseText End With End Function |
Парсинг файлов (ADODB.Stream)
Пользовательская функция GetText (VBA Excel) для извлечения (парсинга) текстового содержимого из файла (.txt, .csv, .mhtml), сохраненного на диск компьютера, по его полному имени (адресу) с помощью объекта «ADODB.Stream»:
Function GetText(ByVal myFile As String) As String On Error Resume Next With CreateObject(«ADODB.Stream») .Charset = «utf-8» .Open .LoadFromFile myFile GetText = .ReadText .Close End With End Function |
Примеры записи текста в переменную
Общая формула записи текста, извлеченного с помощью пользовательских функций VBA Excel, в переменную:
Dim htmlText As String htmlText = GetHTML1(«Адрес сайта (html-страницы)») htmlText = GetHTML2(«Адрес сайта (html-страницы)») htmlText = GetText(«Полное имя файла») |
Конкретные примеры:
htmlText = GetHTML1(«https://internettovary.ru/nabor-dlya-vyrashchivaniya-veshenki/») htmlText = GetHTML2(«https://internettovary.ru/nabor-dlya-vyrashchivaniya-veshenki/») htmlText = GetText(«C:UsersEvgeniyDownloadsНовый текстовый документ.txt») htmlText = GetText(«C:UsersEvgeniyDownloadsИспользование msxml2.xmlhttp в Excel VBA.mhtml») |
В понятие «парсинг», кроме извлечения текстового содержимого сайтов, html-страниц или файлов, входит поиск и извлечение конкретных данных из всего полученного текстового содержимого.
Пример извлечения email-адресов из текста, присвоенного переменной, смотрите в последнем параграфе статьи: Регулярные выражения (объекты, свойства, методы).
Парсинг содержимого тегов
Извлечение содержимого тегов с помощью метода getElementsByTagName объекта HTMLFile:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
Sub Primer1() Dim myHtml As String, myFile As Object, myTag As Object, myTxt As String ‘Извлекаем содержимое html-страницы в переменную myHtml с помощью функции GetHTML1 myHtml = GetHTML1(«https://internettovary.ru/sadovaya-nozhovka-sinitsa/») ‘Создаем объект HTMLFile Set myFile = CreateObject(«HTMLFile») ‘Записываем в myFile текст из myHtml myFile.body.innerHTML = myHtml ‘Присваиваем переменной myTag коллекцию одноименных тегов, имя которого ‘указанно в качестве аргумента метода getElementsByTagName Set myTag = myFile.getElementsByTagName(«p») ‘Выбираем, содержимое какого тега по порядку, начинающегося с 0, нужно извлечь myTxt = myTag(5).innerText MsgBox myTxt ‘Большой текст может не уместиться в MsgBox, тогда для просмотра используйте окно Immediate ‘Debug.Print myTxt End Sub |
С помощью этого кода извлекается текст, расположенный между открывающим и закрывающим тегами. В примере — это текст 6-го абзаца (p) между 5-й (нумерация с 0) парой отрывающего <p> и закрывающего </p> тегов.
Примеры тегов, используемых в html: "p"
, "title"
, "h1"
, "h2"
, "table"
, "div"
, "script"
.
Пример извлечения содержимого тега "title"
:
Sub Primer2() Dim myHtml As String, myFile As Object, myTag As Object, myTxt As String myHtml = GetHTML1(«https://internettovary.ru/sadovaya-nozhovka-sinitsa/») Set myFile = CreateObject(«HTMLFile») myFile.body.innerHTML = myHtml Set myTag = myFile.getElementsByTagName(«title») myTxt = myTag(0).innerText MsgBox myTxt End Sub |
Парсинг содержимого Id
Извлечение текстового содержимого html-элементов, имеющих уникальный идентификатор — Id, с помощью метода getElementById объекта HTMLFile:
Sub Primer3() Dim myHtml As String, myFile As Object, myTag As Object, myTxt As String myHtml = GetHTML1(«https://internettovary.ru/sadovaya-nozhovka-sinitsa/») Set myFile = CreateObject(«HTMLFile») myFile.body.innerHTML = myHtml ‘Присваиваем переменной myTag html-элемент по указанному в скобках Id Set myTag = myFile.getElementById(«attachment_465») ‘Присваиваем переменной myTxt текстовое содержимое html-элемента с Id myTxt = myTag.innerText MsgBox myTxt ‘Большой текст может не уместиться в MsgBox, тогда для просмотра используйте окно Immediate ‘Debug.Print myTxt End Sub |
Для реализации представленных здесь примеров могут понадобиться дополнительные библиотеки. В настоящее время у меня подключены следующие (к данной теме могут относиться последние шесть):
- Visual Basic For Applications
- Microsoft Excel 16.0 Object Library
- OLE Automation
- Microsoft Office 16.0 Object Library
- Microsoft Forms 2.0 Object Library
- Ref Edit Control
- Microsoft Scripting Runtime
- Microsoft Word 16.0 Object Library
- Microsoft Windows Common Controls 6.0 (SP6)
- Microsoft ActiveX Data Objects 6.1 Library
- Microsoft ActiveX Data Objects Recordset 6.0 Library
- Microsoft HTML Object Library
- Microsoft Internet Controls
- Microsoft Shell Controls And Automation
- Microsoft XML, v6.0
С этим набором библиотек все примеры работают. Тестирование проводилось в VBA Excel 2016.