Hur man gör din egen grundläggande webbläsare med hjälp av VBA
När du verkligen slutar tänka på det, är en webbläsare i sin enklaste form inte så imponerande en applikation. Jag menar, ja, Internet är fantastiskt av någons standarder. Begreppet att länka så många av världens datorer och mobila enheter inom detta massiva nätverk, det är episkt. Men konceptet att överföra en textfil med särskild kod i den och visa den överförda texten på datorskärmen - det är verkligen inte en stor sak.
I själva verket tack vare de inbäddade referenserna i applikationer som använder VBA, kan du skriva in och skriva ut webbsidor via dina egna applikationer. Om du har följt våra tidigare skriptartiklar vet du att vi älskar VB-skript och VBA, som min artikel om att maximera Windows 3 sätt att öppna program och Windows maximeras med VB Script [Windows] 3 sätt att öppna applikationer och Windows maximeras med VB Script [Windows] Om det finns en sak jag älskar att göra, skriver det VB-skript. Oavsett om det är en Windows Script-fil eller ett VBA-skript i ett program, ger skript möjligheten att lägga till funktionalitet för program ... Läs mer, Pauls på självuppdaterande diagram Hur man skapar självuppdaterande Excel-diagram i tre enkla steg Hur man skapar själv- Uppdatering av Excel-diagram i tre enkla steg Vi visar hur du gör din Excel-diagram självuppdatering. Lägg bara till nya data och kolla hur de automatiskt visas i din graf. Det är snabbt och enkelt. Läs mer och Saikat sänder ut masspostmeddelanden Hur man skickar personliga masspostmeddelanden i Outlook med Mail Merge Hur man skickar personliga masspostmeddelanden i Outlook med Mail Merge Läs mer .
Med hjälp av tillvägagångssättet nedan kan du använda Word, Access eller Excel för att läsa HTML-dokument på webben, ändra de dokumenten och sedan mata ut vad du vill i ett nytt webbläsarfönster.
Det kan låta som något som bara en erfaren VBA-programmerare kan göra, men i den här artikeln ska jag visa dig hur du kan göra det själv, med början på en grundläggande procedur för att mata ut data från din egen applikation till en webbsida.
Aktiverar Microsoft Internet Controls
Det första steget, oavsett hur du vill använda sig av möjligheten att mata in / ut din egen HTML via VBA, är att aktivera Microsoft Internet Controls referens.
I Excel gör du detta genom att klicka på “Utvecklare” menyobjekt, klicka på Designläge, och sedan klicka på “Visa kod” knapp. Det kan tyckas annorlunda i äldre versioner av Excel, men i huvudsak behöver du hitta var du kan starta VBA-kodredigeraren.
I VBA-editoren klickar du på Verktyg, och då referenser.
I fönstret Referenser bläddrar du hela vägen tills du ser “Microsoft Internet Controls“. Markera rutan och klicka sedan på “ok“.
Nu, inom din VBA-kod, kommer du att kunna skapa objekt som kan få information från Internet och du kan skriva ut egna HTML-dokument som användaren kan visa i sin egen webbläsare.
Inmatning och utmatning av HTML
Det första du vill uppnå här är att lägga ut information till HTML. Tänk på hur mycket du kan göra när du kan mata ut information till en perfekt formaterad HTML-webbsida. Du kan extrahera data från dina Excel-kalkylblad och skriva ut dem i en snygg formaterad rapport.
För att skapa den här funktionen måste du lägga in en kommandoknapp på ditt ark. Under Utvecklare menyn, klicka på Designläge, och klicka sedan på “Föra in” knapp. Du får se en nedrullning av kontroller som du kan lägga till i ditt ark.
Klicka i så fall på knappen kontroll och placera den i ditt ark. Se till att det finns några data i arket (eller något ark) som du vill exportera till en rapport när knappen klickas. Vänster klicka på knappen för att välja den och klicka “Visa kod“.
Ange följande kod:
Underknapp1_Click ()
Dim objIE som objekt
Dimma HTML som sträng
'---------- HTML-koden går från här och ner----------
HTML = "HTML rapport sida "& _
""& _
"Följande är resultat från din dagliga beräkning"& _
""& _
"Daglig produktion:" & Sheet1.Cells (1, 1) & ""& _
"Daily Scrap:" & Sheet1.Cells (1, 2) & ""
'---------- HTML-koden går här och ovan---------
På fel GoTo error_handler
Ange objIE = CreateObject ("InternetExplorer.Application")
Med objie
.Navigera "om: blank"
Gör medan .Busy: DoEvents: Loop
Gör medan .ReadyState <> 4: DoEvents: Loop
.Synlig = True
.Document.Write HTML
Sluta med
Ange objIE = Inget
Exit Sub
error_handler:
MsgBox ("Oväntat fel, jag avslutar.")
objIE.Quit
Ange objIE = Inget
Avsluta Sub
Den här koden matar ut HTML-koden som du har definierat i den utgående strängen. Som du kan se från mitt exempel ovan kan du bädda in data från något ark i Excel i HTML-strängen. Här är den resulterande webbsiderapporten:
Nu när du har HTML-utdata fungerar, är nästa steg för att göra ditt VBA-skriptarbete praktiskt taget som en webbläsare att läsa i HTML från en webbplats, manipulera data och sedan mata ut den till en HTML-utskriftssida.
Underknapp1_Click ()
Dim objIE som objekt
Dimma HTML som sträng
På fel GoTo error_handler
Ange objIE = CreateObject ("InternetExplorer.Application")
Med objie
.Navigera "http://www.google.com"
Gör medan .Busy: DoEvents: Loop
Gör medan .ReadyState <> 4: DoEvents: Loop
.Synlig = True
HTML = objIE.Document.Body.innerHTML
.Document.Write "Mina egna Google-resultat! Detta är en redigerad version av Googles sida!
"& HTML &""
Sluta med
Ange objIE = Inget
Exit Sub
error_handler:
MsgBox ("Oväntat fel, jag avslutar.")
objIE.Quit
Ange objIE = Inget
Avsluta Sub
Vad jag har gjort här används iE-objektet för att läsa HTML från Google till en textvariabel i VBA kallad HTML. Sedan lade jag ut min egen HTML-utmatningstext högst upp på sidan och utmatade sedan samma HTML-kod till VBA HTML-utgången. Så här ser det ut:
Det här är ett mycket grundläggande exempel på vad detta kan. Men om du funderar på det, kan du söka efter specifika rader på sidan, leta efter bilder, söka efter e-postadresser till telefonnummer - om du kan skriva om hela den här HTML-filen från en webbsida i din VBA-strängvariabel. inmatningssida i en ny, redigerad version av samma sida i vilket format du vill och med alla ändringar du vill ha.
Om du gör det skulle det behöva lite strängmanipuleringsförmåga - men ingenting är omöjligt när du har läst i HTML-källan från webben.
Ser du någon potential för att använda antingen HTML-ingång eller -utmatning i dina egna applikationer? Kan du tänka på några coola användningsområden för det här skriptet? Dela dina tankar i kommentarfältet nedan.
Bildkredit: Shutterstock
Utforska mer om: Programmering, Visual Basic Programmering.