Hoe u uw eigen basisbrowser maakt met behulp van VBA
Wanneer je echt stopt om erover na te denken, is een internetbrowser in zijn eenvoudigste vorm niet echt zo'n indrukwekkend programma. Ik bedoel, ja, het internet is geweldig voor iedereen. Het concept van het koppelen van zoveel van 's werelds computers en mobiele apparaten binnen dit enorme netwerk, dat is episch. Maar het concept van het overbrengen van een tekstbestand met speciale code erin, en het weergeven van die overgedragen tekst op het computerscherm - dat is echt geen probleem.
Dankzij de ingesloten verwijzingen in toepassingen die VBA gebruiken, kunt u zelfs webpagina's invoeren en uitvoeren via uw eigen applicaties. Als je onze scriptartikelen in het verleden hebt gevolgd, dan weet je dat we dol zijn op VB-script en VBA, zoals mijn artikel over maximaliseren van Windows 3 manieren om applicaties te openen en Windows gemaximaliseerd met VB Script [Windows] 3 manieren om applicaties te openen en Windows gemaximaliseerd met VB Script [Windows] Als er iets is dat ik heel graag doe, zijn het VB-scripts schrijven. Of het nu gaat om een Windows Script-bestand of een VBA-script in een toepassing, scripting biedt de mogelijkheid om functionaliteit toe te voegen aan applicaties ... Lees meer, Paul's op zelf-actualiserende grafieken Hoe maak je zelf-actualiserende Excel-grafieken in drie eenvoudige stappen Hoe creëer je zelf- Excel-grafieken bijwerken in drie eenvoudige stappen We laten u zien hoe u uw Excel-diagrammen zelf kunt bijwerken. Voeg gewoon nieuwe gegevens toe en zie hoe ze automatisch in uw grafiek verschijnen. Het is snel en gemakkelijk. Meer lezen en Saikat voor het verzenden van massale e-mails Massale e-mails verzenden in Outlook met Afdruk samenvoegen Massale e-mails verzenden in Outlook Met Afdruk samenvoegen Meer lezen .
Met de onderstaande aanpak kunt u Word, Access of Excel gebruiken om HTML-documenten op internet te lezen, die documenten aan te passen en vervolgens in een nieuw browservenster uit te voeren wat u maar wilt.
Het klinkt misschien als iets dat alleen een ervaren VBA-programmeur kan doen, maar in dit artikel laat ik je zien hoe je dit zelf kunt doen, te beginnen met een basisprocedure om gegevens vanuit je eigen applicatie naar een webpagina te sturen.
Microsoft Internet Controls inschakelen
De eerste stap, ongeacht hoe u gebruik wilt maken van de mogelijkheid om uw eigen HTML in te voeren / uitvoeren via VBA, is door Microsoft Internet Controls te activeren.
In Excel doet u dit door te klikken op de “Ontwikkelaar” menupunt, klikken Ontwerpmodus, en klik vervolgens op de “Bekijk code” knop. Dit kan in oudere versies van Excel anders lijken, maar in essentie moet je vinden waar je de VBA-code-editor kunt starten.
Klik in de VBA-editor op Hulpmiddelen, en dan Referenties.
In het venster Verwijzingen scroll je helemaal naar beneden totdat je het ziet “Microsoft Internet Controls“. Vink het vakje aan en klik vervolgens op “OK“.
Nu kunt u binnen uw VBA-code objecten maken die informatie van internet kunnen halen en u kunt uw eigen HTML-documenten uitvoeren die de gebruiker in zijn eigen browser kan bekijken.
HTML invoeren en uitvoeren
Het eerste dat u hier wilt bereiken, is het uitvoeren van informatie naar HTML. Bedenk hoeveel u kunt doen als u informatie kunt uitvoeren naar een perfect opgemaakte HTML-webpagina. U kunt gegevens uit uw Excel-spreadsheets extraheren en deze in een mooi geformatteerd rapport uitvoeren.
Als u deze functie wilt maken, moet u een opdrachtknop op uw blad plaatsen. Onder de Ontwikkelaar menu, klik op Ontwerpmodus, en klik vervolgens op de “invoegen” knop. U ziet een vervolgkeuzelijst met besturingselementen die u aan uw blad kunt toevoegen.
Klik in dit geval op de knopbesturing en plaats deze in uw blad. Zorg ervoor dat er enkele gegevens in het blad (of een vel) staan die u naar een rapport wilt uitvoeren wanneer op de knop wordt geklikt. Klik met de linkermuisknop op de knop om deze te selecteren en klik op “Bekijk code“.
Voer de volgende code in:
Subknop 1_Click ()
Dim objIE als object
Dim HTML als tekenreeks
'---------- De HTML-CODE GAAT VAN HIER EN BENEDEN----------
HTML = "HTML-rapportpagina "& _
""& _
"De volgende resultaten zijn van uw dagelijkse berekening"& _
""& _
"Dagelijkse productie:" & Sheet1.Cells (1, 1) & ""& _
"Daily Scrap:" & Sheet1.Cells (1, 2) & ""
'---------- De HTML-CODE GAAT HIER EN BOVEN---------
On Error GoTo error_handler
Stel objIE = CreateObject ("InternetExplorer.Application") in
Met objIE
.Navigeer "about: blank"
Do While .Busy: DoEvents: Loop
Do While .ReadyState <> 4: DoEvents: Loop
.Zichtbaar = waar
.Document.Write HTML
Eindigt met
Stel objIE in = niets
Sub afsluiten
error_handler:
MsgBox ("Unexpected Error, I'm quitting.")
objIE.Quit
Stel objIE in = niets
End Sub
Deze code voert de HTML uit die u in die uitvoerreeks hebt gedefinieerd. Zoals u aan de hand van mijn voorbeeld hierboven kunt zien, kunt u gegevens van elk blad in Excel insluiten in uw HTML-tekenreeks. Dit is het resulterende webpagina-rapport:
Nu HTML-uitvoer werkt, is de volgende stap om ervoor te zorgen dat uw VBA-script virtueel werkt als een webbrowser, het lezen van HTML in een bepaalde website, het manipuleren van de gegevens en deze vervolgens uitvoeren naar een HTML-uitvoerpagina.
Subknop 1_Click ()
Dim objIE als object
Dim HTML als tekenreeks
On Error GoTo error_handler
Stel objIE = CreateObject ("InternetExplorer.Application") in
Met objIE
.Navigeer door 'http://www.google.com'
Do While .Busy: DoEvents: Loop
Do While .ReadyState <> 4: DoEvents: Loop
.Zichtbaar = waar
HTML = objIE.Document.Body.innerHTML
.Document.Write "Mijn eigen Google-resultaten! Dit is een bewerkte versie van de Google-pagina!
"& HTML &""
Eindigt met
Stel objIE in = niets
Sub afsluiten
error_handler:
MsgBox ("Unexpected Error, I'm quitting.")
objIE.Quit
Stel objIE in = niets
End Sub
Wat ik hier heb gedaan, is het IE-object gebruikt om HTML van Google te lezen in een tekstvariabele in VBA met de naam HTML. Vervolgens plaatste ik mijn eigen HTML-uitvoertekst bovenaan de pagina en gaf ik dezelfde HTML-code weer naar de VBA HTML-uitvoer. Dit is hoe dat eruit ziet:
Dit is een heel basaal voorbeeld van wat dit kan. Maar als je erover nadenkt, als je eenmaal de HTML van een webpagina hebt geladen in je VBA-tekenreeksvariabele, kun je naar specifieke regels op de pagina zoeken, naar afbeeldingen zoeken, zoeken naar e-mailadressen van telefoonnummers - of je zou het hele bericht kunnen herschrijven voer de invoerpagina in in een nieuwe, bewerkte versie van dezelfde pagina in welk formaat u maar wilt en met alle gewenste wijzigingen.
Om dit te doen zou een beetje van de manipulatie van snaren vereist moeten zijn - maar niets is onmogelijk als je eenmaal de HTML-broncode van het web hebt gelezen.
Ziet u mogelijkheden om HTML-invoer of uitvoer in uw eigen toepassingen te gebruiken? Kun je een goed gebruik van dit script bedenken? Deel uw mening in de commentarensectie hieronder.
Afbeelding tegoed: Shutterstock
Ontdek meer over: Programmeren, Visual Basic Programming.