Когда вы действительно задумываетесь об этом, интернет-браузер в его простейшей форме не настолько впечатляет как приложение. Я имею в виду, да, Интернет удивительный по чьим-либо стандартам. Концепция объединения стольких компьютеров и мобильных устройств в мире в эту огромную сеть, которая является эпической. Но концепция переноса текстового файла со специальным кодом в нем и отображения перенесенного текста на экран компьютера — это на самом деле не имеет большого значения.
Фактически, благодаря встроенным ссылкам в приложениях, использующих VBA, вы можете вводить и выводить веб-страницы через свои собственные приложения. Если вы следили за нашими предыдущими статьями о сценариях, то вы знаете, что мы любим сценарии VB и VBA, как моя статья о максимизации окон
Пол на самообновляющихся графиках
и Сайкат на рассылку массовых писем
,
Используя приведенный ниже подход, вы можете использовать Word, Access или Excel для чтения HTML-документов в Интернете, изменения этих документов, а затем вывода всего, что вы хотите, в новом окне браузера.
Может показаться, что это может сделать только опытный программист VBA, но в этой статье я собираюсь показать вам, как вы можете сделать это самостоятельно, начиная с базовой процедуры вывода данных из вашего собственного приложения на веб-страницу.
Включение Microsoft Internet Controls
Первым шагом, независимо от того, как вы хотите использовать возможность ввода / вывода собственного HTML-кода через VBA, является включение ссылки на элементы управления Microsoft Internet Controls.
В Excel вы делаете это, нажимая на пункт меню «Разработчик», нажимая «Режим разработки», а затем нажимая кнопку «Просмотреть код». Это может выглядеть по-разному в старых версиях Excel, но по сути вам нужно найти, где вы можете запустить редактор кода VBA.
В редакторе VBA щелкните Инструменты, а затем Ссылки.
В окне «Ссылки» полностью прокрутите вниз, пока не увидите «Microsoft Internet Controls». Поставьте галочку и нажмите «ОК».
Теперь в своем коде VBA вы сможете создавать объекты, которые могут получать информацию из Интернета, и вы можете выводить собственные HTML-документы, которые пользователь может просматривать в своем браузере.
Ввод и вывод HTML
Первое, что вы хотите здесь сделать, — это вывод информации в HTML. Подумайте, сколько вы можете сделать, когда сможете вывести информацию на отлично отформатированную HTML-страницу. Вы можете извлекать данные из электронных таблиц Excel и выводить их в хорошо отформатированном отчете.
Чтобы создать эту функцию, вам нужно вставить командную кнопку на свой лист. В меню «Разработчик» выберите «Режим разработки», а затем нажмите кнопку «Вставить». Вы увидите раскрывающийся список элементов управления, которые можно добавить на свой лист.
В этом случае нажмите кнопку управления и поместите ее на свой лист. Убедитесь, что на листе (или на любом листе) есть данные, которые вы хотите вывести в отчет при нажатии кнопки. Щелкните левой кнопкой мыши на кнопке, чтобы выбрать ее, и нажмите «Просмотр кода».
Введите следующий код:
Sub Button1_Click()
Dim objIE As Object
Dim HTML As String
'----------The HTML CODE GOES FROM HERE AND DOWN----------
HTML = "HTML Report Page" & _
"" & _
"The Following Are Results From Your Daily Calculation" & _
"" & _
"Daily Production: " & Sheet1.Cells(1, 1) & "" & _
"Daily Scrap: " & Sheet1.Cells(1, 2) & ""
'----------The HTML CODE GOES HERE AND ABOVE---------
On Error GoTo error_handler
Set objIE = CreateObject("InternetExplorer.Application")
With objIE
.Navigate "about:blank"
Do While .Busy: DoEvents: Loop
Do While .ReadyState 4: DoEvents: Loop
.Visible = True
.Document.Write HTML
End With
Set objIE = Nothing
Exit Sub
error_handler:
MsgBox ("Unexpected Error, I'm quitting.")
objIE.Quit
Set objIE = Nothing
End Sub
Этот код выводит HTML, который вы определили в этой выходной строке. Как вы можете видеть из моего примера выше, вы можете встраивать данные из любого листа в Excel в вашу строку HTML. Вот итоговый отчет веб-страницы:
Теперь, когда у вас есть работающий вывод HTML, следующий шаг для того, чтобы ваш скрипт VBA работал практически так же, как веб-браузер, — это чтение HTML с какого-либо веб-сайта, манипулирование данными, а затем вывод их на страницу вывода HTML.
Sub Button1_Click()
Dim objIE As Object
Dim HTML As String
On Error GoTo error_handler
Set objIE = CreateObject("InternetExplorer.Application")
With objIE
.Navigate "http://www.google.com"
Do While .Busy: DoEvents: Loop
Do While .ReadyState 4: DoEvents: Loop
.Visible = True
HTML = objIE.Document.Body.innerHTML
.Document.Write "My Own Google Results!This is an Edited Version of the Google Page!" & HTML & ""
End With
Set objIE = Nothing
Exit Sub
error_handler:
MsgBox ("Unexpected Error, I'm quitting.")
objIE.Quit
Set objIE = Nothing
End Sub
Здесь я использовал объект IE для чтения HTML из Google в текстовую переменную VBA под названием HTML. Затем я поместил свой собственный текст вывода HTML в верхнюю часть страницы, а затем вывел тот же HTML в вывод VBA HTML. Вот как это выглядит:
Это очень простой пример того, на что он способен. Но если вы подумаете об этом, как только вы загрузите HTML-код с веб-страницы в строковую переменную VBA, вы можете искать определенные строки на странице, искать изображения, искать адреса электронной почты телефонных номеров — или вы можете переписать весь текст. введите страницу в новую, отредактированную версию этой же страницы в любом формате и с любыми изменениями, которые вам нравятся.
Для этого потребуется немного мастерства в работе со строками — но нет ничего невозможного, как только вы прочитаете HTML-источник из Интернета.
Видите ли вы какой-либо потенциал для использования ввода или вывода HTML в ваших собственных приложениях? Можете ли вы придумать какие-нибудь интересные варианты использования этого скрипта? Поделитесь своими мыслями в разделе комментариев ниже.
Изображение предоставлено: Shutterstock