реклама
Интеграцията му с Windows позволява контрол на Internet Explorer по много изненадващи начини Visual Basic за приложения (VBA) скрипт от всяко приложение, което го поддържа, като Word, Outlook или Excel.
VBA автоматизация - особено директно автоматизиране на браузър като IE, както ще видите в тази статия - е точно нещо, което издига VBA от удобен скрипт за програмиране в мощен език за автоматизация. Това, което го прави толкова страхотно, е фактът, че много приложения с контроли или обекти се създават просто с цел да ви позволят да се интегрирате в него, използвайки езика за програмиране VBA.
През годините ви показахме как да правите наистина страхотни неща с VBA. Например, можете да го използвате изпращайте имейли директно от Excel Как да изпращате имейли от електронна таблица в Excel, използвайки VBA скриптовеНашият кодов шаблон ще ви помогне да настроите автоматизирани имейли от Excel с помощта на обекти за данни за сътрудничество (CDO) и VBA скриптове. Прочетете още , можете автоматично
експортиране на задачи на Outlook в електронна таблица в Excel Как да експортирате вашите Outlook задачи към Excel с VBAНезависимо дали сте фен на Microsoft или не, едно добро нещо, което може да се каже поне за продуктите на MS Office, е колко лесно е да се интегрират всеки един от тях един с друг ... Прочетете още , и дори можете проектирайте собствен интернет браузър Как да направите своя основен интернет браузър, използвайки VBAКогато наистина спрете да мислите за това, интернет браузър в най-простата му форма всъщност не е толкова впечатляващо приложение. Искам да кажа, да, Интернет е невероятен по ничии стандарти. Концепцията за свързване ... Прочетете още ! Това не са само продукти на Microsoft. Има приложения на трети страни от всички видове доставчици, които са интегрирали VBA и съвместими обекти в своя софтуер - от Adobe Acrobat SDK до SDC за ObjectARX за AutoCAD - има начини да „включите“ повече приложения, отколкото вероятно осъзнават.Идеята
В този случай ще свържете Excel с IE. Защо IE? Тъй като Internet Explorer е толкова добре интегриран с операционната система, че наистина не е нужно да правите много, за да започнете да използвате IE автоматизация в VBA в други продукти на Microsoft като Word или Excel. Това е красотата на. В тази статия ще видите как работи тази автоматизация, а в бъдеща статия ще видите как да направите почти същия вид нещо с други браузъри.
Това, което ще ви покажа тук, е привидно просто приложение, но има много приложения, където бихте могли да използвате този код, за да правите различни готини неща с браузъра си. Най-долният ред е, че ще създадете електронна таблица в Excel с цел бързо запазване на всички отворени прозорци на браузъра с едно щракване на бутон. Можете да запазите тази електронна таблица и да излезете или да изключите компютъра си.
Върнете се час или три дни по-късно, отворете електронната таблица, щракнете върху друг бутон и тези запазени URL адреси ще се отворят отново в същия брой раздели, както преди. Очевидното чудесно използване на това би било да съхранявате цяла библиотека от общи настройки за онлайн работно пространство в Excel. След това можете да възстановите това работно пространство с едно щракване на бутон, без да се налага да намирате всички тези URL адреси отново.
Автоматизиране на Internet Explorer с VBA
Първото нещо, което трябва да направите, е да отворите Excel (използвам 2013 - други версии са подобни, когато става въпрос за програмиране на VBA) и отидете на елемента от менюто на програмист. Вътре там ще видите бутон за вмъкване, който пада на всичките ви контроли. Изберете контролния бутон ActiveX и го поставете в електронната си таблица.
Вероятно вече сте създали заглавка за URL адреси, ако искате, но не е нужно. Това наистина е библиотека за съхранение на URL адреси, така че заглавките всъщност нямат значение. След като добавите бутона, щракнете двукратно върху него, за да отворите редактора на VBA. В долната лява част ще видите свойствата на новия си бутон.
Преименувайте го на нещо като cmdSaveURL и задайте надписът на „Запазване на URL адреси“ - което показва, че това е бутона за запазване на всички отворени URL адреси от вашия браузър IE.
След това отидете в менюто Инструменти в горната част на редактора на VBA, щракнете върху Позовавания в менюто и превъртете надолу дългия списък, за да намерите референцията „Microsoft Internet Controls“. Щракнете върху квадратчето вляво от него и след това щракнете върху OK.
Сега вече сте готови В текстовата област на редактора трябва да видите ред, който гласи „Private Sub cmdSaveURLs_Click ()“. Ако не го виждате, щракнете върху лявото падащо поле над текстовата област и намерете cmdSaveURL в списъка. Изберете го и той ще създаде функцията Click () за вас.
Това е кодът, който искате да вмъкнете в тази функция:
im IE като обект. Dim shellWins като нови ShellWindows. Dim IE_TabURL като низ. Dim intRowPosition като Integer intRowPosition = 2 за всеки IE в shellWins IE_TabURL = IE.LocationURL Ако IE_TabURL <> vbNullString Тогава Sheet1.Range ("A" & intRowPosition) = IE_TabURL intRowPosition = intRowPosition + 1 край Ако следващата настройка shellWins = Нищо. Задайте IE = Нищо
Позоваването на Microsoft Scripting Runtime го прави така, че можете да получите достъп до обекта ShellWindows, който ви позволява да итератирате през Windows и да намирате отворените от вас инстанции. Този скрипт ще намери всеки отворен 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 като Integer intRowPosition = 2 Задайте IE = CreateObject („InternetExplorer. Приложение") 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? Споделете своите мисли и отзиви в секцията за коментари по-долу!
Райън има бакалавърска степен по електротехника. Работил е 13 години в автоматизацията, 5 години е в ИТ, а сега е инженер на приложения. Бивш управляващ редактор на MakeUseOf, той говори на национални конференции за визуализация на данни и е участвал в националната телевизия и радио.