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