WindowsПроизводительность

Использование VBA для автоматизации сеансов Internet Explorer из электронной таблицы Excel

Использование VBA для автоматизации сеансов Internet Explorer из электронной таблицы Excel

Его интеграция с Windows позволяет несколькими удивительными способами управлять Internet Explorer, используя сценарий Visual Basic для приложений (VBA) из любого приложения, которое его поддерживает, например Word, Outlook или Excel.

Откройте БЕСПЛАТНУЮ шпаргалку «Essential Excel Formulas» прямо сейчас!

Это подпишет вас на нашу рассылку

Введите адрес электронной почты

Автоматизация VBA — особенно прямая автоматизация браузера, такого как IE, как вы увидите в этой статье, — это как раз то, что превращает VBA из удобного сценария программирования в мощный язык автоматизации. Что делает его таким удивительным, так это тот факт, что многие приложения с элементами управления или объектами создаются просто для того, чтобы позволить вам интегрироваться в них с использованием языка программирования VBA.

За прошедшие годы мы показали вам, как делать действительно классные вещи с VBA. Например, вы можете использовать его для отправки электронных писем непосредственно из Excel. отправлять электронные письма из , вы можете автоматически экспортировать задачи Outlook в электронную таблицу Excel. , и вы даже можете создать свой собственный интернет-браузер. ! Это не только продукты Microsoft. Существуют сторонние приложения от разных производителей, которые интегрировали VBA и совместимые объекты в свое программное обеспечение — от Adobe Acrobat SDK до ObjectARX SDK для AutoCAD — есть способы «подключить» больше приложений, чем вы, вероятно, представляете.

Идея

В этом случае вы собираетесь подключить Excel с IE. Почему IE? Поскольку Internet Explorer настолько хорошо интегрирован с операционной системой, что вам действительно не нужно много делать, чтобы начать использовать автоматизацию IE в VBA в других продуктах Microsoft, таких как Word или Excel. В этом вся прелесть. В этой статье вы увидите, как работает эта автоматизация, а в следующей статье вы узнаете, как сделать то же самое с другими браузерами.

Здесь я покажу вам, казалось бы, простое приложение, но в нем есть множество приложений, в которых вы можете использовать этот код для выполнения множества интересных вещей с помощью браузера. Суть в том, что вы собираетесь создать электронную таблицу Excel с целью быстрого сохранения всех открытых окон браузера одним нажатием кнопки. Вы можете сохранить эту таблицу и уйти или выключить компьютер.

Вернитесь через час или три дня назад, откройте электронную таблицу, нажмите другую кнопку, и эти сохраненные URL-адреса снова откроются на том же количестве вкладок, что и раньше. Очевидным классным вариантом использования этого было бы хранить целую библиотеку общих сетевых настроек рабочего пространства в Excel. Затем вы можете восстановить это рабочее пространство одним нажатием кнопки без необходимости повторного поиска всех этих URL-адресов.

Автоматизация Internet Explorer с помощью VBA

Первое, что нужно сделать, это открыть Excel (я использую 2013 — другие версии похожи в программировании на VBA) и перейти в пункт меню Developer. Внутри вы увидите кнопку вставки, которая опускает все ваши элементы управления. Выберите элемент управления ActiveX и поместите его в электронную таблицу.

IE-automation1

Предположительно, вы уже создали заголовок для URL, если хотите, но не обязаны. Это действительно библиотека хранения URL, поэтому заголовки не имеют большого значения. Как только вы добавите кнопку, дважды щелкните по ней, чтобы открыть редактор VBA. Внизу слева вы увидите свойства вашей новой кнопки.

Переименуйте его в что-то вроде cmdSaveURLs и установите для заголовка «Сохранить URL-адреса», указывая, что это кнопка для сохранения всех открытых URL-адресов из браузера IE.

Спаси URLs

Затем перейдите в меню «Сервис» в верхней части редактора VBA, нажмите «Ссылки» в меню и прокрутите длинный список, чтобы найти ссылку «Microsoft Internet Controls». Установите флажок слева от него и нажмите кнопку ОК.

IE-automation3

Теперь вы готовы к работе. В текстовой области редактора вы должны увидеть строку «Private Sub cmdSaveURLs_Click ()». Если вы этого не видите, щелкните левое раскрывающееся поле над текстовой областью и найдите cmdSaveURLs в списке. Выберите его, и он создаст функцию Click () для вас.

Это код, который вы хотите вставить в эту функцию:

  я IE как объект
 Dim shellWins As New ShellWindows
 Dim IE_TabURL As String
 Dim intRowPosition как целое число

 intRowPosition = 2

 Для каждого IE в shellWins
         IE_TabURL = IE.LocationURL
         Если IE_TabURL <> vbNullString Тогда
             Sheet1.Range ("A" & intRowPosition) = IE_TabURL
             intRowPosition = intRowPosition + 1
         End If

 следующий

 Установить shellWins = Nothing
 Установить IE = ничего 

Ссылка Microsoft Scripting Runtime позволяет вам получить доступ к объекту ShellWindows, который позволяет перебирать Windows и находить экземпляры IE, которые у вас открыты. Этот скрипт найдет все открытые вами URL-адреса и запишет их в электронную таблицу Excel.

IE-automation4

Таким образом, теоретически, если вы работаете над чем-то вроде ведения блога, и у вас есть несколько открытых элементов, таких как окна исследований, редактор блога или окно календаря — все эти вкладки будут активными. Если вам нужно завершить работу или уйти в спешке, может быть очень сложно сохранить свое местоположение, скопировав все эти URL-адреса.

IE-automation5

С новым скриптом Excel просто нажмите кнопку «Загрузить URL-адреса», и он загрузится прямо в электронную таблицу.

IE-automation6

Одно предостережение. Если вы не используете строку заголовка, вам нужно изменить строку «intRowPosition = 2» на «intRowPosition = 1», и это начнется с первой строки, а не с пропуска строки заголовка.

Открытие сохраненной рабочей области браузера

Следующий этап этого проекта — пойти в другом направлении. Нажмите «Загрузить URL-адреса», чтобы Excel запустил IE и перезагрузил все те URL-адреса, которые вы сохранили в электронной таблице. Вот как должна выглядеть функция cmdLoadURLs_Click ().

  Тусклый IE как объект
 Dim shellWins As New ShellWindows
 Dim IE_TabURL As String
 Dim intRowPosition как целое число

 intRowPosition = 2

 Установить IE = CreateObject ("InternetExplorer.Application")
 IE.Visible = True

 IE.Navigate Sheet1.Range ("A" & intRowPosition)

 Пока IE.Busy
     DoEvents
 венед

 intRowPosition = intRowPosition + 1

 Хотя Sheet1.Range ("A" и intRowPosition) <> vbNullString
     IE.Navigate Sheet1.Range ("A" и intRowPosition), CLng (2048)

     Пока IE.Busy
         DoEvents
     венед

     intRowPosition = intRowPosition + 1
 венед

 Установить IE = ничего 

Здесь есть несколько шагов, но, как вы можете видеть, код не такой длинный и сложный. Вы создаете новый экземпляр IE, делаете его видимым (это откроет IE без загрузки URL). Затем он загрузит первый URL в списке.

IE-automation8

Часть сценария «Пока IE.Busy» ожидает, пока страница полностью не загрузится, а затем переходит к остальным URL-адресам в вашей электронной таблице, открывая новую вкладку (это то, что делает «CLng (2048)», пока он попадает в пустую ячейку вашей электронной таблицы, затем он прекращает открывать новые вкладки.Это мой браузер IE со всеми четырьмя исходными вкладками, восстановленными с помощью сценария автоматизации Excel IE.

IE-automation9

Резюме

Моей настоящей целью было сделать так, чтобы отдельные таблицы создавали наборы вкладок для таких задач, как исследование и запись в моем собственном блоге, запись в , выполнение SEO-проектов на сайте или полный список других ролей или проектов, которые требуют сохраненная коллекция вкладок, которые всегда используются.

Использование электронной таблицы для хранения этих настроек и автоматизация их открытия в браузере может сэкономить много времени … и на самом деле это тоже здорово.

Используете ли вы какой-либо вид автоматизации IE в своих приложениях VBA? Видите какие-нибудь другие интересные варианты использования такого элемента управления IE из Excel? Поделитесь своими мыслями и отзывами в разделе комментариев ниже!

Похожие посты
Windows

Драйверы для Windows 10

Windows

Лучшие приложения для фотографии на вашем Windows Phone

Windows

Команды командной строки для панели управления апплетами

Windows

Официальное приложение SmugMug теперь доступно для Windows Phone