Internetseiten mit Excel VBA öffnen und schließen
Schritt-für-Schritt-Anleitung
Um mit Excel VBA eine Webseite zu öffnen und zu schließen, kannst du folgenden Code verwenden. Dieser Code öffnet eine Internetseite in Internet Explorer und schließt sie nach 10 Sekunden.
Sub test()
Dim objExplorer As Object
Set objExplorer = CreateObject("InternetExplorer.Application")
With objExplorer
.Navigate "http://networkwelt.xmarkt.de/kam/anz_confirm.php3?xxxxxxx" ' URL anpassen
.StatusBar = False
.MenuBar = False
.Toolbar = False
.Visible = True
.Resizable = True
.Width = 800
.Height = 600
.Left = 0
.Top = 0
End With
Application.Wait (Now + TimeValue("0:00:10")) ' 10 Sekunden anzeigen
objExplorer.Quit ' schließen
Set objExplorer = Nothing
End Sub
Wenn du mehrere Webseiten öffnen möchtest, kannst du den Code optimieren, indem du ein Array verwendest.
Sub test()
Dim objExplorer As Object
Dim Seiten As Variant
Dim I As Integer
Seiten = Array("http://www.ms-office-forum.net/forum/showthread.php?t=223915", _
"http://www.herber.de/forum/archiv/936to940/t937120.htm")
Set objExplorer = CreateObject("InternetExplorer.Application")
With objExplorer
.StatusBar = False
.MenuBar = False
.Toolbar = False
.Visible = True
.Resizable = True
.Width = 800
.Height = 600
.Left = 0
.Top = 0
For I = 0 To UBound(Seiten)
.Navigate (Seiten(I))
Application.Wait (Now + TimeValue("0:00:10")) ' 10 Sekunden anzeigen
Next
End With
objExplorer.Quit ' schließen
Set objExplorer = Nothing
End Sub
Häufige Fehler und Lösungen
Alternative Methoden
Anstelle von Internet Explorer kannst du auch andere Browser wie Chrome verwenden, allerdings ist die Automatisierung mit VBA dazu nicht so einfach. Eine Möglichkeit wäre, die Selenium-Bibliothek zu verwenden, um Webseiten in Chrome zu öffnen.
Praktische Beispiele
-
Öffnen einer spezifischen Webseite:
Verwende den folgenden Code, um eine bestimmte Webseite direkt zu öffnen und nach 10 Sekunden zu schließen.
Sub OpenWebpage()
Dim ie As Object
Set ie = CreateObject("InternetExplorer.Application")
With ie
.Visible = True
.Navigate "http://example.com"
Application.Wait (Now + TimeValue("0:00:10"))
.Quit
End With
Set ie = Nothing
End Sub
-
Öffnen mehrerer Seiten in einer Schleife:
Dieser Code öffnet mehrere Webseiten nacheinander und wartet jeweils 10 Sekunden.
Sub OpenMultipleWebsites()
Dim ie As Object
Dim websites As Variant
Dim i As Integer
websites = Array("http://example1.com", "http://example2.com")
Set ie = CreateObject("InternetExplorer.Application")
With ie
.Visible = True
For i = LBound(websites) To UBound(websites)
.Navigate websites(i)
Application.Wait (Now + TimeValue("0:00:10"))
Next i
.Quit
End With
Set ie = Nothing
End Sub
Tipps für Profis
-
Nutze DoEvents während einer Schleife, um die Benutzeroberfläche reaktionsfähig zu halten:
Do While .Busy Or .readyState <> 4
DoEvents
Loop
-
Überlege, ob du auf die Verwendung von Internet Explorer verzichten kannst, da viele Nutzer auf moderne Browser gewechselt sind.
FAQ: Häufige Fragen
1. Kann ich mit VBA auch andere Browser als Internet Explorer steuern?
Ja, du kannst andere Browser wie Chrome oder Firefox steuern, jedoch benötigst du dazu zusätzliche Bibliotheken wie Selenium.
2. Wie kann ich die Wartezeit anpassen?
Du kannst die Zeit in Application.Wait (Now + TimeValue("0:00:10"))
ändern, indem du die Minuten und Sekunden anpasst, z. B. "0:00:20"
für 20 Sekunden.