En utilisant vba pour automatiser les sessions d`internet explorer à partir d`une feuille de calcul excel

Son intégration avec Windows permet un contrôle d`Internet Explorer dans un certain nombre de façons surprenantes en utilisant Visual Basic pour Applications de script (VBA) à partir de toute application qui prend en charge, tels que Word, Outlook ou Excel.

automatisation VBA - en particulier l`automatisation directement un navigateur comme Internet Explorer comme vous le verrez dans cet article - est exactement le genre de chose qui élève VBA à partir d`un script de programmation pratique dans une langue puissante d`automatisation. Ce qui le rend si impressionnant est le fait que de nombreuses applications sont créées avec des commandes ou des objets simplement dans le but de vous permettre d`y intégrer en utilisant le langage de programmation VBA.

Au fil des ans, nous avons montré comment faire des trucs vraiment cool avec VBA. Par exemple, vous pouvez l`utiliser pour envoyer des e-mails directement à partir de l`intérieur Excel, vous pouvez automatiquement tâches Outlook exportation vers une feuille de calcul Excel, et vous pouvez même concevoir votre propre navigateur Internet! Ce ne sont pas seulement les produits Microsoft soit. Il y a des applications 3e parti de toutes sortes de fournisseurs qui ont intégré des objets VBA et compatibles dans leur logiciel - à partir d`Adobe Acrobat SDK pour le SDK ObjectARX pour AutoCAD - il y a des façons de « brancher » en plus d`applications que vous réalisez probablement.Comment envoyer des emails depuis une feuille Excel à l`aide de scripts VBAComment envoyer des emails depuis une feuille Excel à l`aide de scripts VBADans le passé, je l`ai utilisé un email beaucoup dans mes travaux par lots et d`autres scripts automatisés, comme je l`ai décrit dans les articles précédents. Ceux-ci sont parfaits pour les moments où vous avez un script ...Lire la suite

L`idée

Dans ce cas, vous allez vous connecter Excel avec IE. Pourquoi IE? Parce que Internet Explorer est si bien intégré au système d`exploitation que vous n`avez pas vraiment à faire beaucoup pour commencer à utiliser l`automatisation IE dans VBA dans d`autres produits Microsoft comme Word ou Excel. C`est la beauté. Dans cet article, vous verrez comment cette automatisation fonctionne, et dans un futur article, vous verrez comment faire à peu près la même chose avec d`autres navigateurs.

Ce que je vais vous montrer ici est une application simple en apparence, mais il a beaucoup d`applications où vous pouvez utiliser ce code pour faire une variété de choses cool avec votre navigateur. L`essentiel est que vous allez créer une feuille de calcul Excel dans le but de sauver rapidement toutes vos fenêtres ouvertes du navigateur en un seul clic sur un bouton. Vous pouvez enregistrer cette feuille de calcul et à pied ou éteignez votre ordinateur.

Revenez une heure ou trois jours plus tard, ouvrez la feuille de calcul, cliquez sur un autre bouton et les URL enregistrées rouvriront dans le même nombre d`onglets que vous aviez avant. L`utilisation de ce froid évident serait de stocker une bibliothèque de configurations de l`espace de travail en ligne communs dans Excel. Ensuite, vous pouvez restaurer cet espace de travail en un seul clic d`un bouton sans avoir à retrouver toutes ces URL.

Automatisant Internet Explorer Avec VBA

La première chose à faire est d`ouvrir Excel (j`utilise 2013 - d`autres versions sont similaires en ce qui concerne la programmation VBA) et accédez à l`élément de menu Developer. A l`intérieur, vous verrez un bouton d`insertion, qui tombe vers le bas toutes vos commandes. Sélectionnez le contrôle ActiveX bouton-poussoir et placez-le dans votre feuille de calcul.

IE-automation1

Je suppose que vous avez déjà créé un en-tête pour les URL si vous voulez, mais vous ne devez pas. Ceci est vraiment une bibliothèque de stockage d`URL, donc en-têtes ne sont pas vraiment d`importance. Une fois que vous ajoutez le bouton, double-cliquez dessus pour ouvrir l`éditeur VBA. Pour en bas à gauche, vous verrez les propriétés de votre nouveau bouton-poussoir.

Renommer à quelque chose comme cmdSaveURLs et définir la légende « Enregistrer les URL » - indiquant que c`est le bouton pour enregistrer toutes les URL ouvertes à partir de votre navigateur IE.

économie-urls

Ensuite, allez dans le menu Outils en haut de l`éditeur VBA, cliquez sur Références dans le menu, puis faites défiler la liste pour trouver la référence « Microsoft Contrôles Internet ». Cochez la case à gauche de celui-ci, puis cliquez sur OK.

IE-automation3

Maintenant, vous êtes prêt à rouler. Dans la zone de texte de l`éditeur, vous devriez voir une ligne qui lit « Sub cmdSaveURLs_Click privé () ». Si vous ne le voyez pas, cliquez sur le menu déroulant à gauche au-dessus de la zone de texte et trouver cmdSaveURLs dans la liste. Sélectionnez-le, et il va créer la fonction Click () pour vous.

Ceci est le code que vous souhaitez insérer dans cette fonction:

im IE Comme ObjectDim shellWins As New ShellWindowsDim IE_TabURL Comme StringDim intRowPosition Comme IntegerintRowPosition = 2Pour Chaque IE Dans shellWinsIE_TabURL = IE.LocationURLIf IE_TabURL lt; gt; vbNullString ThenSheet1.Range ("UNE" & intRowPosition) = IE_TabURLintRowPosition = intRowPosition + 1End IfNextSet shellWins = NothingSet IE = Nothing

La référence Microsoft Scripting Runtime fait pour que vous puissiez accéder à l`objet ShellWindows, ce qui vous permet de parcourir à travers Windows et localiser les instances de IE que vous avez ouvert. Ce script localise toutes les URL que vous avez ouvert et écrire sur la feuille de calcul Excel.

IE-automation4

Donc, en théorie, si vous travaillez sur quelque chose comme les blogs, et vous avez quelques éléments ouverts, comme les fenêtres de recherche, votre éditeur de blog, ou une fenêtre de calendrier - tous ces onglets seront actifs. Si vous devez arrêter ou laisser pressé, il peut être une vraie douleur pour sauver où vous êtes en copiant toutes les URL.

IE-automation5

Avec votre nouveau script Excel, cliquez sur le bouton URL de charge, et il va le charger directement dans la feuille de calcul.

Video: Filling a Web Form and Page with Microsoft VBA Excel Internet Explorer Application

IE-automation6

Une mise en garde. Si vous n`utilisez pas une ligne d`en-tête, vous aurez envie de changer la ligne « intRowPosition = 2 » à « intRowPosition = 1 » et cela commence à la première ligne plutôt que de sauter la ligne d`en-tête.

Video: Excel VBA Introduction Part 47 - Browsing to Websites and Scraping a Web Page

Ouverture de votre espace de travail du navigateur Enregistré

La prochaine étape de ce projet est d`aller dans l`autre sens. Cliquez sur le « URL de charge » et ont lancement Excel IE et recharger toutes les URL que vous avez enregistrées dans la feuille de calcul. Voici à quoi devrait ressembler la fonction cmdLoadURLs_Click ().

Dim IE Comme shellWins ObjectDim en tant que nouveau ShellWindowsDim IE_TabURL Comme StringDim intRowPosition Comme IntegerintRowPosition = 2Régler IE = CreateObject ("InternetExplorer.Application") IE.Visible = TrueIE.Navigate Sheet1.Range ("UNE" & intRowPosition) Alors que IE.BusyDoEventsWendintRowPosition = intRowPosition + 1Tout Sheet1.Range ("UNE" & intRowPosition) lt; gt; vbNullStringIE.Navigate Sheet1.Range ("UNE" & intRowPosition), CLng (2048) Alors que IE.BusyDoEventsWendintRowPosition = intRowPosition + 1WendSet IE = Nothing

Il y a quelques pas, mais comme vous pouvez voir le code est tout ce long ou compliqué. Vous créez une nouvelle instance de IE, le rendre visible (cela va ouvrir IE sans charger une URL). Ensuite, il va charger la première URL dans la liste.

Video: Excel & VBA - Download Internet Files Automatically

IE-automation8

La « Bien que IE.Busy » une partie du script attend jusqu`à ce que la page est complètement chargée, puis passer au reste des URL dans votre feuille de calcul, l`ouverture d`un nouvel onglet (qui est ce que le « CLng (2048) » fait, jusqu`à ce que il frappe une cellule vide dans votre feuille de calcul, il va arrêter d`ouvrir de nouveaux onglets. Voici mon navigateur IE avec les quatre onglets originaux récupérés en utilisant le script d`automatisation IE Excel.

IE-automation9

Résumé

Mon vrai but de le faire était d`avoir des feuilles de calcul individuelles mis en place des collections d`onglets pour des tâches telles que la recherche et l`écriture sur mon propre blog, écrit sur MakeUseOf, faire un travail de projet de référencement sur le site, ou une liste d`autres rôles ou des projets qui nécessitent une collection enregistrée d`onglets qui sont toujours utilisés.

L`utilisation d`un tableur pour stocker les configurations et l`automatisation de les ouvrir dans un navigateur permet d`économiser beaucoup de temps ... et il est en fait assez cool aussi.

Utilisez-vous tout type d`automatisation IE dans vos applications VBA? Voir toute autre utilisation frais pour ce type de contrôle IE à partir d`Excel? Partagez vos réflexions et commentaires dans la section commentaires ci-dessous!

Articles connexes