Utilizzo di VBA per automatizzare le sessioni di Internet Explorer da un foglio di calcolo di Excel

Utilizzo di VBA per automatizzare le sessioni di Internet Explorer da un foglio di calcolo di Excel / finestre

La sua integrazione con Windows consente il controllo di Internet Explorer in vari modi sorprendenti utilizzando lo script VBA (Visual Basic for Applications) da qualsiasi applicazione che lo supporta, come Word, Outlook o Excel.

L'automazione VBA, in particolare automatizzando direttamente un browser come IE, come vedrai in questo articolo, è esattamente il tipo di cosa che eleva VBA da un comodo script di programmazione a un potente linguaggio di automazione. Ciò che lo rende così impressionante è il fatto che molte applicazioni con controlli o oggetti sono create semplicemente allo scopo di consentirvi di integrarvi in ​​esso utilizzando il linguaggio di programmazione VBA.

Nel corso degli anni, ti abbiamo mostrato come fare cose davvero interessanti con VBA. Ad esempio, è possibile utilizzarlo per inviare e-mail direttamente da Excel Come inviare e-mail da un foglio di calcolo Excel mediante script VBA Come inviare e-mail da un foglio di calcolo Excel mediante script VBA Il nostro modello di codice ti aiuterà a configurare e-mail automatizzate da Excel utilizzando Collaboration Data Objects (CDO) e script VBA. Per saperne di più, è possibile esportare automaticamente le attività di Outlook in un foglio di calcolo Excel Come esportare le attività di Outlook in Excel con VBA Come esportare le proprie attività di Outlook in Excel con VBA Se sei un fan di Microsoft, una cosa buona che si può dire sui prodotti MS Office, almeno, è quanto sia facile integrarli tra loro ... Leggi di più, e puoi anche progettare il tuo browser Internet Come creare il tuo browser Internet di base utilizzando VBA Come creare il tuo sistema di base Browser Internet Utilizzo di VBA Quando ci si ferma a pensarci bene, un browser Internet nella sua forma più semplice non è davvero una applicazione così impressionante. Voglio dire, sì, Internet è sorprendente per gli standard di chiunque. Il concetto di collegamento ... Leggi di più! Non sono solo i prodotti Microsoft. Ci sono applicazioni di terze parti di tutti i tipi di fornitori che hanno integrato VBA e oggetti compatibili nel loro software - da Adobe Acrobat SDK all'ObjectARX SDK per AutoCAD - ci sono modi per “collegarlo” più applicazioni di quelle che probabilmente realizzi.

L'idea

In questo caso, collegherete Excel con IE. Perché IE? Poiché Internet Explorer è così ben integrato con il sistema operativo che non devi fare molto per iniziare a utilizzare l'automazione IE in VBA in altri prodotti Microsoft come Word o Excel. Questa è la bellezza di. In questo articolo vedrai come funziona questa automazione e in un prossimo articolo vedrai come fare quasi lo stesso genere di cose con altri browser.

Quello che sto per mostrarvi qui è un'applicazione apparentemente semplice, ma ha un sacco di applicazioni in cui è possibile utilizzare questo codice per fare una varietà di cose interessanti con il browser. La linea di fondo è che si sta per creare un foglio di calcolo Excel allo scopo di salvare rapidamente tutte le finestre del browser aperte con un clic di un pulsante. Puoi salvare questo foglio di calcolo e allontanarti o spegnere il computer.

Torna indietro di un'ora o di tre giorni dopo, apri il foglio di calcolo, fai clic su un altro pulsante e gli URL salvati verranno riaperti nello stesso numero di schede di prima. L'uso ovvio di ciò sarebbe archiviare un'intera libreria di impostazioni di lavoro online comuni in Excel. Quindi è possibile ripristinare quell'area di lavoro con un clic di un pulsante senza dover trovare nuovamente tutti quegli URL.

Automatizzare Internet Explorer con VBA

La prima cosa da fare è aprire Excel (sto usando 2013 - altre versioni sono simili quando si parla di programmazione VBA) e andare alla voce di menu Developer. All'interno, vedrai un pulsante di inserimento, che abbassa tutti i tuoi controlli. Seleziona il controllo del pulsante ActiveX e posizionalo nel foglio di calcolo.

Presumibilmente, hai già creato un'intestazione per gli URL, se vuoi, ma non devi. Questa è davvero una libreria di archiviazione URL, quindi le intestazioni non contano davvero. Una volta aggiunto il pulsante, fai doppio clic su di esso per aprire l'editor VBA. In basso a sinistra, vedrai le proprietà per il tuo nuovo pulsante.

Rinominarlo in qualcosa come cmdSaveURLs e impostare la didascalia su “Salva URL” - indicando che questo è il pulsante per salvare tutti gli URL aperti dal tuo browser IE.

Successivamente, vai al menu Strumenti nella parte superiore dell'editor VBA, fai clic su Riferimenti nel menu e scorri lungo la lunga lista per trovare il “Microsoft Internet Controls” riferimento. Fare clic sulla casella di controllo a sinistra di esso, quindi fare clic su OK.

Ora sei pronto per partire. Nell'area di testo dell'editor, dovresti vedere una riga che legge “Sottotitoli privati ​​cmdSaveURLs_Click ()”. Se non lo vedi, fai clic sulla casella a discesa a sinistra sopra l'area di testo e trova cmdSaveURLs nell'elenco. Selezionalo e creerà la funzione Click () per te.

Questo è il codice che vuoi inserire in quella funzione:

im IE Come oggetto Dim shellWins As New ShellWindows Dim IE_TabURL As String Dim intRowPosition As Integer intRowPosition = 2 Per ogni IE In shellWind IE_TabURL = IE.LocationURL If IE_TabURL <> vbNullString Then Sheet1.Range ("A" & intRowPosition) = IE_TabURL intRowPosition = intRowPosition + 1 End If Next Set shellWins = Nothing Set IE = Nothing

Il riferimento a Microsoft Scripting Runtime consente di accedere all'oggetto ShellWindows, che consente di scorrere Windows e individuare le istanze di IE aperte. Questo script localizzerà ogni URL aperto e lo scriverà nel foglio di calcolo di Excel.

Quindi, in teoria, se stai lavorando su qualcosa come il blogging e hai alcuni elementi aperti, come le finestre di ricerca, l'editor del tuo blog o una finestra del calendario, tutte queste schede saranno attive. Se devi chiudere o partire in fretta, può essere un vero dolore salvare dove sei copiando tutti quegli URL.

Con il tuo nuovo script di Excel, fai clic sul pulsante Carica URL e lo caricherà direttamente nel foglio di calcolo.

Un avvertimento. Se non stai usando una riga di intestazione, allora vorrai cambiare linea “intRowPosition = 2” a “intRowPosition = 1” e questo inizierà dalla prima riga anziché saltare la riga dell'intestazione.

Apertura dell'area di lavoro del browser salvata

La prossima fase di questo progetto è di andare nella direzione opposta. Clicca il “Carica URL” e lancia Excel in IE e ricarica tutti gli URL che hai salvato nel foglio di calcolo. Ecco come dovrebbe apparire la funzione cmdLoadURLs_Click ().

Dim IE As Object Dim shellWins As New ShellWindows Dim IE_TabURL As String Dim intRowPosition As Integer intRowPosition = 2 Set IE = CreateObject ("InternetExplorer.Application") IE.Visible = True IE.Navigate Sheet1.Range ("A" & intRowPosition) While IE.Busy DoEvents Wend intRowPosition = intRowPosition + 1 While Sheet1.Range ("A" & intRowPosition) <> vbNullString IE.Navigate Sheet1.Range ("A" & intRowPosition), CLng (2048) While IE.Busy DoEvents Wend intRowPosition = intRowPosition + 1 Wend Set IE = Nothing

Ci sono alcuni passaggi qui, ma come puoi vedere il codice non è poi così lungo o complicato. Crei una nuova istanza di IE, rendila visibile (questo aprirà IE senza caricare un URL). Successivamente caricherà il primo URL nell'elenco.

Il “Mentre IE.Busy” parte dello script attende che la pagina sia completamente caricata, quindi passa al resto degli URL nel foglio di lavoro, aprendo una nuova scheda (è ciò che “CLng (2048)” lo fa fino a quando non colpisce una cella vuota nel foglio di calcolo, quindi interromperà l'apertura di nuove schede. Ecco il mio browser IE con tutte e quattro le schede originali recuperate utilizzando lo script di automazione di Excel IE.

Sommario

Il mio vero obiettivo era quello di fare in modo che i singoli fogli di lavoro istituissero raccolte di schede per attività come la ricerca e la scrittura sul mio blog, la scrittura su MakeUseOf, il lavoro sul progetto SEO sul sito o un intero elenco di altri ruoli o progetti che richiedono una raccolta salvata di schede che vengono sempre utilizzate.

Utilizzare un foglio di calcolo per archiviare queste impostazioni e automatizzarle aprendole in un browser può far risparmiare un sacco di tempo ... ed è anche abbastanza bello.

Usi qualsiasi tipo di automazione IE nelle tue applicazioni VBA? Vedi altri usi interessanti per questo tipo di controllo IE da Excel? Condividi i tuoi pensieri e feedback nella sezione commenti qui sotto!

Scopri di più su: Computer Automation, Microsoft Excel, Foglio di calcolo.