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

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.

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.
Annuncio pubblicitario

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ì straordinario è 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 utilizzando script VBA Come inviare e-mail da un foglio di calcolo Excel utilizzando gli script VBA Vi mostreremo come configurare e-mail automatizzate da Excel utilizzando Collaboration Data Objects, (CDO) e script VBA. I nostri modelli di codice rendono questo molto più semplice di quanto sembri! 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 altro, e puoi persino progettare il tuo browser Internet Come creare il tuo browser Internet di base utilizzando VBA Come fare Il tuo browser Internet di base con VBA Quando ti fermi davvero a pensarci, 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. Esistono applicazioni di terze parti di tutti i tipi di fornitori che hanno integrato VBA e oggetti compatibili nel loro software - da Adobe Acrobat SDK a ObjectARX SDK per AutoCAD - ci sono modi per "collegare" 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.

IE-automation1

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.

Rinominalo in qualcosa come cmdSaveURLs e imposta la didascalia su "Salva URL", indicando che questo è il pulsante per salvare tutti gli URL aperti dal tuo browser IE.

salva-URLs

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

IE-automation3

Ora sei pronto per partire. Nell'area di testo dell'editor, dovresti vedere una riga che recita "Private Sub 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 Object Object Dim shellWins As New ShellWindows Dim IE_TabURL As String Dim intRowPosition As Integer intRowPosition = 2 Per Each IE In shellWind IE_TabURL = IE.LocationURL If IE_TabURL vbNullString Then Sheet1.Range ("A" & intRowPosition) = IE_TabURL intRowPosition = intRowPosition + 1 Fine Se Avanti Imposta 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.

IE-automation4

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.

IE-automation5

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

IE-automation6

Un avvertimento. Se non si utilizza una riga di intestazione, allora si vorrà cambiare la riga "intRowPosition = 2" in "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. Fai clic su "Carica URL" e avvia Excel a 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" e 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.

IE-automation8

La parte "While IE.Busy" dello script attende che la pagina sia completamente caricata, quindi passa al resto degli URL nel foglio di lavoro, aprendo una nuova scheda (questo è ciò che fa "CLng (2048)", fino a quando 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.

IE-automation9

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 molto tempo ... ed è anche molto 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!

In this article