Comment créer votre propre navigateur Internet de base à l’aide de VBA
Lorsque vous vous arrêtez vraiment et que vous y réfléchissez, un navigateur Internet dans sa forme la plus simple n’est pas une application vraiment impressionnante. Je veux dire, oui, Internet est incroyable selon les normes de n’importe qui. Le concept de connecter autant d’ordinateurs et d’appareils mobiles dans le monde dans ce vaste réseau est épique. Mais le concept de transférer un fichier texte avec un code spécial et d’afficher le texte transféré sur l’écran de l’ordinateur – ce n’est vraiment pas grave.
En fait, vous pouvez importer et exporter des pages Web depuis votre propre application grâce à des références intégrées dans votre application à l’aide de VBA. Si vous avez suivi nos précédents articles sur les scripts, vous savez que nous aimons les scripts VB et VBA, comme mon article sur la maximisation des fenêtres, l’article de Paul sur les graphiques à mise à jour automatique et l’article de Saikat sur l’envoi d’e-mails en masse.
En utilisant les méthodes ci-dessous, vous pouvez lire des documents HTML sur le Web à l’aide de Word, Access ou Excel, apporter des modifications à ces documents et afficher ce que vous voulez dans une nouvelle fenêtre de navigateur.
Cela peut sembler quelque chose que seul un programmeur VBA expérimenté peut faire, mais dans cet article, je vais vous montrer comment le faire vous-même, depuis les bases de la sortie de données de votre propre application vers une page Web. Le processus commence.
Faire une vidéo du jour
Activer les contrôles Internet de Microsoft
La première étape, quelle que soit la manière dont vous souhaitez profiter de la possibilité d’importer/exporter votre propre code HTML via VBA, consiste à activer la référence Microsoft Internet Controls.
Dans Excel, vous pouvez cliquer surdéveloppeur » élément de menu, cliquez sur Modèles de conception,puis clique »Afficher le code« . Cela peut être différent dans les anciennes versions d’Excel, mais vous devez essentiellement trouver où vous pouvez lancer l’éditeur de code VBA.
Dans l’éditeur VBA, cliquez sur outilet puis faire référence à.
Dans la fenêtre Références, faites défiler vers le bas jusqu’à ce que vous voyiez « Contrôle Internet Microsoft« . Cochez la case et cliquez »D’ACCORD« .
Désormais, dans votre code VBA, vous pourrez créer des objets pouvant obtenir des informations sur Internet et vous pourrez générer vos propres documents HTML que les utilisateurs pourront afficher dans leurs propres navigateurs.
HTML d’entrée et de sortie
La première chose que vous voulez faire ici est de sortir les informations au format HTML. Pensez à tout ce que vous pouvez faire une fois que vous pouvez générer des informations sur une page HTML parfaitement formatée. Vous pouvez extraire des données de feuilles de calcul Excel et les produire sous forme de rapports bien formatés.
Pour créer cette fonctionnalité, vous devez insérer un bouton de commande sur la feuille de calcul.en dessous de développeur menu, cliquez sur Modèles de conceptionpuis cliqueinsérer« . Vous verrez une liste déroulante de contrôles que vous pouvez ajouter à la feuille de calcul.
Dans ce cas, le contrôle de bouton est cliqué et placé dans la feuille de calcul. Assurez-vous que vous disposez de certaines données dans la feuille de calcul (ou dans n’importe quelle feuille de calcul) que vous souhaitez générer dans le rapport lorsque vous cliquez sur le bouton. Faites un clic gauche sur le bouton pour le sélectionner, puis cliquez sur « Afficher le code« .
Entrez le code suivant :
Sub Button1_Click() Dim objIE As Object Dim HTML As String ‘———Le code HTML descend à partir d’ici ———- HTML = «
» & _ « Sortie quotidienne : » & Sheet1.Cells(1, 1) & «
» & _ » Scrap quotidien : » & Sheet1.Cells(1, 2) & «
» ‘———Code HTML ici et ci-dessus——— Sur erreur GoTo error_handler Set objIE = CreateObject(« InternetExplorer.Application « ) With objIE .Navigate « about:blank » Do While .Busy : DoEvents : Boucle Do While .ReadyState <> 4 : DoEvents : Boucle .Visible = True .Document.Write HTML End With Set objIE = Nothing Exit Sub error_handler : MsgBox (« Erreur inattendue, je quitte. ») objIE .Quit Set objIE = Nothing End Sub
Ce code génère le code HTML que vous définissez dans cette chaîne de sortie. Comme vous pouvez le voir dans l’exemple ci-dessus, vous pouvez intégrer des données de n’importe quelle feuille de calcul dans Excel dans une chaîne HTML. Voici le rapport Web généré :
Maintenant que votre sortie HTML fonctionne, l’étape suivante pour que le script VBA fonctionne comme un navigateur Web consiste à lire le code HTML d’un site Web, à manipuler les données et à le générer sur une page de sortie HTML.
Sub Button1_Click() Dim objIE As Object Dim HTML As String On Error GoTo error_handler Set objIE = CreateObject(« InternetExplorer.Application ») With objIE .Navigate « http://www.google.com » Do While .Busy: DoEvents: Loop Faire Tant que .ReadyState <> 4 : DoEvents : Boucle .Visible = True HTML = objIE.Document.Body.innerHTML .Document.Write «
Ceci est une version modifiée de la page Google !
» & HTML & « » End With Set objIE = Nothing Exit Sub error_handler: MsgBox (« Erreur inattendue, je quitte. » ) objIE.Quit Set objIE = Nothing End Sub
Ce que je fais ici, c’est utiliser un objet IE pour lire le HTML de Google dans une variable de texte appelée HTML dans VBA. J’ai ensuite mis mon propre texte de sortie HTML en haut de la page, puis j’ai sorti le même code HTML dans la sortie HTML VBA. Voici à quoi cela ressemble :
Voici un exemple très basique de sa fonctionnalité. Mais si vous y réfléchissez, une fois que le code HTML de la page Web est chargé dans votre variable de chaîne VBA, vous pouvez rechercher une ligne spécifique dans la page, trouver une image, rechercher l’adresse e-mail d’un numéro de téléphone – ou vous pouvez réécrire le entier Entrez la page dans une nouvelle version éditée de la même page dans n’importe quel format que vous aimez et avec toutes les modifications que vous aimez.
Cela nécessite des compétences en manipulation de chaînes – mais une fois que vous avez lu la source HTML sur le Web, rien n’est impossible.
Voyez-vous le potentiel d’utiliser l’entrée ou la sortie HTML dans vos propres applications ? Pouvez-vous penser à des utilisations intéressantes pour ce script ? Partagez vos pensées dans la section des commentaires ci-dessous.
Crédit d’image : Shutterstock
A propos de l’auteur