Аутоматизујте Интернет Екплорер (ИЕ) помоћу ВБА

Ова страница садржи примере кодирања за аутоматизацију Интернет Екплорер -а (ИЕ) помоћу ВБА.

** Ажурирање 7. 6. 2019: Тренутно је најбољи начин за постизање веб аутоматизације са ВБА коришћењем Селениум -а. Овај чланак НЕ покрива селен. Примери у наставку ће радити и можда ће бити довољни за ваше потребе. Међутим, ако имате напредније потребе или желите да постанете стручњак за веб аутоматизацију, топло препоручујем да уместо тога користите Селениум. Курс Дан Стронга о веб аутоматизацији (попуст доступан путем ове везе) је фантастичан ресурс за учење селена:

(Примам Провизију за придружене особе са Дановог курса)

Идите на веб страницу са ВБА

Први део кода отвара ИЕ и одлази на веб локацију. Други део кода отвара ИЕ, одлази на веб локацију и ступа у интеракцију са оквиром за унос.

12345678910111213141516171819202122232425262728293031323334353637 Суб Аутомате_ИЕ_Лоад_Паге ()'Ово ће учитати веб страницу у ИЕДим и Ас ЛонгЗатамни УРЛ као низДим ИЕ Ас ОбјецтДим објЕлемент Ас ОбјецтДим објЦоллецтион Ас Објецт'Креирајте ИнтернетЕкплорер објектПостави ИЕ = ЦреатеОбјецт ("ИнтернетЕкплорер.Апплицатион")'Подеси ИЕ.Висибле = Тачно да би ИЕ био видљив, или Нетачно да би ИЕ радио у позадиниИЕ.Висибле = Тачно'Дефинирајте УРЛУРЛ = "хттпс://ввв.аутоматеекцел.цом/екцел/"'Идите на УРЛИЕ.Навигате УРЛ'Трака статуса обавештава кориснике да се веб локација учитаваАпплицатион.СтатусБар = УРЛ & "се учитава. Сачекајте …"„Сачекајте док се ИЕ учитава …“ ИЕ РеадиСтате = 4 значи да се веб страница учитала (прва петља је подешена да би се избегло ненамерно прескакање друге петље)До Вхиле ИЕ.РеадиСтате = 4: ДоЕвентс: Лооп 'До ВхилеУради до ИЕ.РеадиСтате = 4: ДоЕвентс: Понављање 'Уради до'Веб страница је учитанаАпплицатион.СтатусБар = УРЛ & "Учитано"'Истовари ИЕПоставите ИЕ = НиштаПостави објЕлемент = НиштаПостави објЦоллецтион = НиштаЕнд Суб

Веома чест проблем са којим се људи сусрећу при раду са ИЕ -ом у ВБА је то што ВБА покушава да покрене код пре него што се Интернет Екплорер потпуно учита. Коришћењем овог кода говорите ВБА да понавља петљу све док ИЕ не буде спреман (ИЕ.РеадиСтате - 4).

1234 „Сачекајте док се ИЕ учитава …“ ИЕ РеадиСтате = 4 значи да се веб страница учитала (прва петља је подешена да би се избегло ненамерно прескакање друге петље)До Вхиле ИЕ.РеадиСтате = 4: ДоЕвентс: Лооп 'До ВхилеУради до ИЕ.РеадиСтате = 4: ДоЕвентс: Понављање 'Уради до

Такође, имајте на уму ову линију кода:

1 ИЕ.Висибле = ТРУЕ

Овај код пребацује да ли ИЕ ради у позадини или у предњем плану.

Отворите УРЛ и унесите податке у образац помоћу ВБА

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 „Ово мора бити на врху вашег модула. Користи се за постављање ИЕ -а као активног прозораЈавна декларација функције СетФорегроундВиндов Либ "усер32" (БиВал ХВНД све док)Суб Аутомате_ИЕ_Ентер_Дата ()'Ово ће учитати веб страницу у ИЕДим и Ас ЛонгЗатамни УРЛ као низДим ИЕ Ас ОбјецтДим објЕлемент Ас ОбјецтДим објЦоллецтион Ас ОбјецтДим ХВНДСрц Ас Лонг'Креирајте ИнтернетЕкплорер објектПостави ИЕ = ЦреатеОбјецт ("ИнтернетЕкплорер.Апплицатион")'Подеси ИЕ.Висибле = Тачно да би ИЕ био видљив, или Нетачно да би ИЕ радио у позадиниИЕ.Висибле = Тачно'Дефинирајте УРЛУРЛ = "хттпс://ввв.аутоматеекцел.цом/вба"'Идите на УРЛИЕ.Навигате УРЛ'Трака статуса обавештава кориснике да се веб локација учитаваАпплицатион.СтатусБар = УРЛ & "се учитава. Сачекајте …"„Сачекајте док се ИЕ учитава …“ ИЕ РеадиСтате = 4 означава да се веб страница учитала (прва петља је подешена да би се избегло ненамерно прескакање друге петље)До Вхиле ИЕ.РеадиСтате = 4: ДоЕвентс: ПетљаДо До ИЕ.РеадиСтате = 4: ДоЕвентс: Петља'Веб страница је учитанаАпплицатион.СтатусБар = УРЛ & "Учитано"'Набавите ИД прозора за ИЕ тако да га можемо поставити као прозор за активирањеХВНДСрц = ИЕ.ХВНД'Подесите ИЕ као активни прозорСетФорегроундВиндов ХВНДСрц'Финд & Филл Оут Инпут Бокн = 0За сваки предмет у ИЕ.доцумент.аллАко је итм = "[објекат ХТМЛИнпутЕлемент]" Затимн = н + 1Ако је н = 3 Тадаитм.Валуе = "орксхеет"итм.Фоцус 'Активира оквир за унос (чини да се курсор појави)Апплицатион.СендКеис "{в}", Труе 'Симулира притисак' В '. Труе каже ВБА -и да сачека'док се притискање тастера не заврши пре него што наставите, што дозвољава'јавасцрипт на страници за покретање и филтрирање табелеГоТо ендмацроКрај АкоКрај АкоСледећи'Истовари ИЕендмакро:Поставите ИЕ = НиштаПостави објЕлемент = НиштаПостави објЦоллецтион = НиштаЕнд Суб

ГетЕлемент у ИЕ користећи ВБА

Интеракција са објектима у Интернет Екплореру често може бити болна. Морате идентификовати са којим конкретним објектом ћете радити. У горњем коду тражимо трећу инстанцу „[објецт ХТМЛИнпутЕлемент]” (образац за унос). Затим уносимо „орксхеет“ у образац за унос (итм.валуе = „орксхеет“), померамо курсор у образац за унос (итм.фоцус) и откуцамо „в“. Уписивање „в“ је неопходно у овом случају да бисте активирали јавасцрипт који се користи за филтрирање табеле.

Постоје директнији начини за одабир објеката, међутим ова метода би требала функционирати ако све друго не успије.

Да бисте користили те друге методе, желећете да користите следеће опције:

1234 ИЕ.доцумент.гетелементбиид ("ИД"). Валуе = "валуе" 'Пронађи по ИД -уИЕ.доцумент.гетелементсбитагнаме ("ИД"). Валуе = "валуе" 'Пронађи по ознациИЕ.доцумент.гетелементсбицласснаме ("ИД"). Валуе = "валуе" 'Пронађи по класиИЕ.доцумент.гетелементсбинаме ("ИД"). Валуе = "валуе" 'Пронађи по имену

Када користите ове методе, можете наићи на проблеме ако постоји више елемената са истим именом. Коришћењем петље (као у горњем примеру кода), можете одредити коју инстанцу елемента ћете користити.

Интеракција са ИЕ коришћењем ВБА

У горњем коду користимо догађај: Фокус (итм.фоцус) за активирање курсора у обрасцу.

Више примера догађаја, метода и својстава објеката/елемената можете пронаћи овде: хттпс://мсдн.мицрософт.цом/ен-ус/либрари/мс535893(в=вс.85).аспк

Неће све ово радити са сваким објектом / елементом и може доћи до доста покушаја и грешака при интеракцији са објектима у ИЕ.

Пошаљите кључеве у Интернет Екплорер

Користили смо команду Сендкеис у горњем коду:

1 Апплицатион.СендКеис "{в}", Тачно

Сендкеи кључеви би генерално требало да буду последње средство. Обично бисте требали имати могућност директне интеракције са објектима, међутим понекад је лакше само користити команду Сендкеис. Сендкеис је у суштини исто што и куцање помоћу тастатуре. Морате се уверити да су исправни прозори и објекти изабрани пре него што наставите. Сендкеис такође могу покренути догађаје који се покрећу на основу интеракције корисника на вебу. У горњем примеру користимо Сендкеис да активирамо Јавасцрипт филтер у Табели коју користимо на веб страници.

Сендкеис има два улаза:
1. кључ за унос (обично окружен са {}… {ентер}, {к}….)
2. Сачекајте да Сендкеис заврши пре него што наставите са ТРУЕ/ФАЛСЕ. Обично ћете желети да ово подешење буде ТРУЕ када радите са Интернет Екплорер -ом.

Покрените Интернет Екплорер у позадини

Да бисте покренули Интернет Екплорер у позадини, морате да урадите две ствари:

1. Позовите макро који садржи ИЕ код помоћу апликације Апплицатион.Рун тако да макро ради у позадини док настављате са радом:

1 Апплицатион.Рун ("Аутомате_ИЕ_Лоад_Паге")

Напомена: Овај код би могао потенцијално прекинути ваш рад или би ваш рад могао ометати код. На пример, ако користите СендКеис, Сендкеис може послати притисак на погрешну апликацију. Будите веома опрезни са овим.
2. Сакриј ИЕ:

1 ИЕ.Висибле = Нетачно

Селен и ВБА

Ако вам је овај чланак био користан, можда бисте хтели да погледате курс Дан Стронга о веб аутоматизацији. Покрива како користити Селениум са ВБА.

(Примам Провизију за придружене особе са Дановог курса)

Сведочанство једног од Данових ученика

хттпс://екцелвбаисфун.цом/вп-цонтент/уплоадс/2019/06/дан_стронг_цомплете_веб_аутоматион_цоурсе_ревиев_ВбФн2ввул8А_1080п.мп4

Ви ће помоћи развој сајта, дељење страницу са пријатељима

wave wave wave wave wave