
Owen Little
0
3351
24
Jego integracja z systemem Windows pozwala kontrolować Internet Explorer na wiele zaskakujących sposobów za pomocą skryptu Visual Basic for Applications (VBA) z dowolnej aplikacji, która go obsługuje, takiej jak Word, Outlook lub Excel.
Automatyzacja VBA - szczególnie bezpośrednio automatyzująca przeglądarkę taką jak IE, jak zobaczycie w tym artykule - jest właśnie tym, co podnosi VBA z wygodnego skryptu programowania do potężnego języka automatyzacji. To, co sprawia, że jest tak niesamowite, to fakt, że wiele aplikacji z kontrolkami lub obiektami jest tworzonych po prostu w celu umożliwienia integracji z nim za pomocą języka programowania VBA.
Przez lata pokazaliśmy ci, jak robić naprawdę fajne rzeczy z VBA. Na przykład możesz użyć go do wysyłania wiadomości e-mail bezpośrednio z poziomu programu Excel Jak wysyłać wiadomości e-mail z arkusza kalkulacyjnego Excel za pomocą skryptów VBA Jak wysyłać wiadomości e-mail z arkusza kalkulacyjnego Excel za pomocą skryptów VBA Nasz szablon kodu pomoże Ci skonfigurować automatyczne wiadomości e-mail z poziomu programu Excel przy użyciu Collaboration Data Objects (CDO) i skrypty VBA. , możesz automatycznie eksportować zadania programu Outlook do arkusza kalkulacyjnego programu Excel Jak eksportować zadania programu Outlook do programu Excel za pomocą VBA Jak eksportować zadania programu Outlook do programu Excel za pomocą VBA Niezależnie od tego, czy jesteś fanem firmy Microsoft, jedną dobrą rzeczą, którą można powiedzieć o MS Przynajmniej produkty biurowe pozwalają na łatwą integrację każdego z nich… a nawet zaprojektować własną przeglądarkę internetową Jak stworzyć własną podstawową przeglądarkę internetową za pomocą VBA Jak zrobić własną podstawową przeglądarkę internetową za pomocą VBA Kiedy naprawdę przestajesz o tym myśleć, przeglądarka internetowa w najprostszej formie nie jest tak imponującą aplikacją. Mam na myśli, że tak, Internet jest niesamowity jak na wszystkie standardy. Koncepcja łączenia…! To nie tylko produkty Microsoft. Istnieją aplikacje innych firm różnych producentów, które zintegrowały VBA i kompatybilne obiekty w swoim oprogramowaniu - od Adobe Acrobat SDK po ObjectARX SDK dla AutoCAD - istnieją sposoby “podłączyć do” więcej aplikacji, niż się wydaje.
Pomysł
W takim przypadku zamierzasz połączyć Excela z IE. Dlaczego IE? Ponieważ Internet Explorer jest tak dobrze zintegrowany z systemem operacyjnym, że tak naprawdę nie trzeba wiele robić, aby zacząć korzystać z automatyzacji IE w VBA w innych produktach Microsoft, takich jak Word lub Excel. Na tym polega piękno. W tym artykule dowiesz się, jak działa ta automatyzacja, aw kolejnym artykule dowiesz się, jak zrobić prawie to samo z innymi przeglądarkami.
To, co tu pokażę, to pozornie prosta aplikacja, ale ma wiele aplikacji, w których możesz użyć tego kodu do robienia różnych fajnych rzeczy w przeglądarce. Najważniejsze jest to, że utworzysz arkusz kalkulacyjny Excel w celu szybkiego zapisania wszystkich otwartych okien przeglądarki za pomocą jednego kliknięcia przycisku. Możesz zapisać ten arkusz kalkulacyjny i odejść lub wyłączyć komputer.
Wróć godzinę lub trzy dni później, otwórz arkusz kalkulacyjny, kliknij inny przycisk, a zapisane adresy URL otworzą się ponownie na tej samej liczbie kart, co wcześniej. Oczywistym fajnym zastosowaniem tego byłoby przechowywanie całej biblioteki typowych ustawień przestrzeni roboczej online w Excelu. Następnie możesz przywrócić ten obszar roboczy jednym kliknięciem przycisku bez konieczności ponownego wyszukiwania wszystkich tych adresów URL.
Automatyzacja programu Internet Explorer za pomocą VBA
Pierwszą rzeczą do zrobienia jest otwarcie programu Excel (używam 2013 - inne wersje są podobne, jeśli chodzi o programowanie VBA) i przejście do pozycji menu Developer. Wewnątrz zobaczysz przycisk wstawiania, który upuszcza wszystkie elementy sterujące. Wybierz kontrolkę przycisku ActiveX i umieść ją w arkuszu kalkulacyjnym.
Prawdopodobnie utworzyłeś już nagłówek adresów URL, jeśli chcesz, ale nie musisz. To naprawdę biblioteka do przechowywania adresów URL, więc nagłówki nie mają tak naprawdę znaczenia. Po dodaniu przycisku kliknij go dwukrotnie, aby otworzyć edytor VBA. W lewym dolnym rogu zobaczysz właściwości nowego przycisku.
Zmień nazwę na coś takiego jak cmdSaveURLs i ustaw Caption na “Zapisz adresy URL” - wskazując, że jest to przycisk, aby zapisać wszystkie otwarte adresy URL z przeglądarki IE.
Następnie przejdź do menu Narzędzia u góry edytora VBA, kliknij Odnośniki w menu i przewiń długą listę, aby znaleźć “Microsoft Internet Controls” odniesienie. Kliknij pole wyboru po lewej stronie, a następnie kliknij przycisk OK.
Teraz jesteś gotowy do gry. W polu tekstowym edytora powinieneś zobaczyć linię, która czyta “Private Sub cmdSaveURLs_Click ()”. Jeśli go nie widzisz, kliknij lewe pole rozwijane powyżej pola tekstowego i znajdź cmdSaveURL na liście. Wybierz go, a utworzy dla ciebie funkcję Click ().
Oto kod, który chcesz wstawić do tej funkcji:
im IE Jako obiekt Dim shellWins Jak nowy ShellWindows Dim IE_TabURL As String Dim intRowPosition As Integer intRowPosition = 2 For Each IE In shellWins IE_TabURL = IE.LocationURL If IE_TabURL vbNullString Następnie Sheet1.Range ("A" & intRowPosition) = intRowPosition 1 koniec, jeśli następny zestaw shellWins = Nic Ustaw IE = Nic
Odwołanie do środowiska wykonawczego skryptów Microsoft sprawia, że można uzyskać dostęp do obiektu ShellWindows, który pozwala na iterację w systemie Windows i zlokalizowanie otwartych instancji IE. Ten skrypt zlokalizuje każdy otwarty adres URL i zapisze go w arkuszu kalkulacyjnym Excel.
Teoretycznie, jeśli pracujesz nad czymś takim jak blogowanie i masz kilka otwartych pozycji, takich jak okna badań, edytor blogów lub okno kalendarza - wszystkie te karty będą aktywne. Jeśli musisz się zamknąć lub odejść w pośpiechu, może być prawdziwym bólem zaoszczędzić, kopiując wszystkie adresy URL.
W nowym skrypcie Excel wystarczy kliknąć przycisk Załaduj adresy URL, a załaduje go on bezpośrednio do arkusza kalkulacyjnego.
Jedno zastrzeżenie. Jeśli nie używasz wiersza nagłówka, będziesz chciał zmienić linię “intRowPosition = 2” do “intRowPosition = 1” i zacznie się to od pierwszego wiersza zamiast pomijania wiersza nagłówka.
Otwieranie zapisanego obszaru roboczego przeglądarki
Kolejnym etapem tego projektu jest pójście w innym kierunku. Kliknij “Załaduj adresy URL” i niech Excel uruchomi IE i załaduje ponownie wszystkie adresy URL zapisane w arkuszu kalkulacyjnym. Oto jak powinna wyglądać funkcja cmdLoadURLs_Click ().
Dim IE As Object Dim shellWins As New ShellWindows Dim IE_TabURL As String Dim intRowPosition As Integer intRowPosition = 2 Ustaw IE = CreateObject („InternetExplorer.Application”) IE.Visible = True IE.Navigate Sheet1.Range („A” i intRowPosition) Podczas IE.Busy DoEvents Wend intRowPosition = intRowPosition + 1 While Sheet1.Range („A” i intRowPosition) vbNullString IE.Navigate Sheet1.Range („A” i intRowPosition), CLng (2048) Podczas gdy IE.Busy DoEvents Wend intRowPosition = intRowPosition + 1 Wend Set IE = Nic
Jest tu kilka kroków, ale jak widać kod nie jest taki długi ani skomplikowany. Tworzysz nowe wystąpienie IE, uczyń go widocznym (otworzy IE bez ładowania adresu URL). Następnie załaduje pierwszy adres URL z listy.
The “Podczas IE.Busy” część skryptu czeka, aż strona zostanie w pełni załadowana, a następnie przejdź do pozostałych adresów URL w arkuszu kalkulacyjnym, otwierając nową kartę (właśnie to “CLng (2048)” tak, dopóki nie trafi do pustej komórki w arkuszu kalkulacyjnym, a następnie przestanie otwierać nowe karty. Oto moja przeglądarka IE z wszystkimi czterema oryginalnymi kartami odzyskanymi za pomocą skryptu automatyzacji Excel IE.
streszczenie
Moim prawdziwym celem było skonfigurowanie indywidualnych arkuszy kalkulacyjnych do zestawów kart do zadań takich jak wyszukiwanie i pisanie na własnym blogu, pisanie na MakeUseOf, praca nad projektem SEO na stronie lub cała lista innych ról lub projektów, które wymagają zapisany zbiór kart, które są zawsze używane.
Używanie arkusza kalkulacyjnego do przechowywania tych ustawień i automatyzacja otwierania ich w przeglądarce może zaoszczędzić dużo czasu… i to też całkiem fajne.
Czy korzystasz z jakiejkolwiek automatyzacji IE w swoich aplikacjach VBA? Widzisz jakieś inne fajne zastosowania dla tego rodzaju kontroli IE z Excela? Podziel się swoimi przemyśleniami i opiniami w sekcji komentarzy poniżej!