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

  • William Charles
  • 0
  • 3756
  • 616
Реклама

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

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

За прошедшие годы мы показали вам, как делать действительно классные вещи с VBA. Например, вы можете использовать его для отправки электронных писем непосредственно из Excel. Как отправлять электронные письма из электронной таблицы Excel, используя скрипты VBA. Как отправлять электронные письма из электронной таблицы Excel, используя скрипты VBA. Наш шаблон кода поможет вам настроить автоматическую электронную почту из Excel, используя Объекты совместной работы (CDO) и сценарии VBA. Вы можете автоматически экспортировать задачи Outlook в электронную таблицу Excel. Как экспортировать задачи Outlook в Excel с помощью VBA. Как экспортировать задачи Outlook в Excel с помощью VBA. Являетесь ли вы поклонником Microsoft, есть одна хорошая вещь, которую можно сказать о MS По крайней мере, продукты Office - это то, как легко интегрировать каждый из них друг с другом ... и вы даже можете создать свой собственный интернет-браузер. Как создать свой собственный базовый интернет-браузер, используя VBA Как создать свой собственный базовый интернет-браузер, используя VBA Когда вы действительно задумываетесь об этом, интернет-браузер в его простейшей форме на самом деле не так впечатляет приложение. Я имею в виду, да, Интернет удивительный по чьим-либо стандартам. Концепция связывания…! Это не только продукты 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 и поместите его в электронную таблицу..

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

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

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

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

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

im IE в качестве объекта Dim 1 Конец, если следующий Установить shellWins = Nothing Установить IE = Nothing

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

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

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

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

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

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

Dim IE как объект Dim shellWins как новый ShellWindows Dim IE_TabURL как строка Dim intRowPosition как целое число intRowPosition = 2 Установите IE = CreateObject ("InternetExplorer.Application") IE.Visible = True IE.Navigate Sheet1.Range ("A" & intRowPosition) в то время как IE.Busy DoEvents Wend intRowPosition = intRowPosition + 1 Пока Sheet1.Range ("A" и intRowPosition) vbNullString IE.Navigate Sheet1.Range ("A" & intRowPosition), CLng (2048), в то время как IE.Busy DoEvents Wend intRowPosition = intRowPosition = 1 Wend Set IE = ничего

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

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

Резюме

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

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

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




О современных технологиях, просто и доступно.
Ваш гид в мире современных технологий. Узнайте как использовать технологии и гаджеты, которые нас окружают каждый день и научитесь открывать интересные вещи в Интернете.