Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Fenstergröße und -position festlegen IE

Fenstergröße und -position festlegen IE
03.03.2009 14:09:29
Werner
Hallo!
Gibt es eine Möglichkeit, per Makrocode die Position und Größe des Internetexplorers von Excel aus festzulegen?
Ich muss mehrere IE's öffnen und einer davon soll unten in der linken Ecke des Bildschirms liegen und ca. 1/4 des Bildschirms bedecken.
Gruß und Danke
Werner
Anzeige

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fenstergröße und -position festlegen IE
03.03.2009 14:31:03
Renee
Hi Werner,
Mich würde brennend interessieren was ein Internetexplorer von Excel ist ?
GreetZ Renée
AW: Fenstergröße und -position festlegen IE
03.03.2009 14:45:56
Werner
Ich meinte, ob man von Excel AUS das Steuern kann.
Also Excel soll eine bestimmte Größe vorschreiben.
Nein.... owT
03.03.2009 14:47:23
Renee

Anzeige
Wiederspruch !!
03.03.2009 17:29:36
Nepumuk
Hallo Werner,
klar geht das. Wie wird das Explorerfenster denn geöffnet? Wenn du mehrere öffnest, welches davon soll dann klein werden?
Gruß
Nepumuk
Widerspruch, soviel Zeit muss sein!
03.03.2009 19:03:38
Siggi
s
AW: Widerspruch, soviel Zeit muss sein!
03.03.2009 19:30:37
Nepumuk
Hi,
Habe einen ziemlichen Überschuss an e's auf meinem Rechner. Ich dachte, schiebst dem Forum ein paar davon unter bevor sie bei mir schlecht werden. :-) Dass man mir so schnell auf die Schliche kommt, hatte ich nicht erwartet. Den Rest meiner e's kann ich ja per Mail an meine Freunde schicken.
Wer will welche?
Gruß
Nepumuk
Anzeige
AW: Widerspruch, soviel Zeit muss sein!
03.03.2009 22:25:36
Siggi
Hi,
wenn du die 'e' auf einer gesonderten Partition lagerst, halten sie sich ewig, aber Achtung,
nie große 'E' und kleine 'e' im selben Ordner aufbewahren!
mfg Siggi
AW: Widderspruch !!
03.03.2009 20:49:19
Renee
Hi Max,
Von Dir akzeptiert!
Von einem Level VBA bescheiden, nicht!
Deine eeeee's kannst du behalten.
Ich hab selber genug ;-))
GreetZ Renée
Anzeige
Größe und Position IE festlegen
04.03.2009 06:58:44
Werner
Hallo Nepumuk
Also ich öffne die IE mit
Call neue_IE_instanz(Range("C6").Value)
Es ist in meinem Fall gleich das erste Fenster.
Aber auch die anderen danach (ca. 4) möchte ich evtl. ansteuern können.
Gruß
Werner
Code von neue_IE_instanz ? (owT)
04.03.2009 09:00:29
neue_IE_instanz

AW: Code von neue_IE_instanz ? (owT)
04.03.2009 09:55:47
neue_IE_instanz
Das ist mein code...

Sub Start()
Dim liDurchlauf As Integer
'erhöhe den Wert 1 to ? um so viele Durchläufe, wie du benötigst
For liDurchlauf_IE = 1 To 6
Select Case liDurchlauf_IE
Case 1
Call neue_IE_instanz(Range("C6").Value)
Case 2
Call neue_IE_instanz(Range("C7").Value)
Case 3
Call neue_IE_instanz(Range("C8").Value)
Case 4
Call neue_IE_instanz(Range("C9").Value)
Case 5
Call neue_IE_instanz(Range("C10").Value)
Case 6
Call neue_IE_instanz(Range("C11").Value)
'Case 7
'    Call neue_IE_instanz(Range("C12").Value)
End Select
Next
'erhöhe den Wert 3 um so viele Durchläufe, wie du benötigst
For liDurchlauf_XL = 1 To 1
Select Case liDurchlauf_XL
Case 1
'trage hier deine richtigen Pfade + Dateinamen ein
'Call NeueXLSitzung("M:\Koblenz\Projects\Statistik\Arbeitshilfe_DMS\ _
ArbAwKoblenz\Abgabe Bea\Abgabe BEA.xls")
'                Case 2
'                    Call NeueXLSitzung("D:\aMappe2.xls")
'                Case 3
'                    Call NeueXLSitzung("D:\kopie.xls")
'Case X
'vervollständige Case X analog zu liDurchlauf
End Select
Next
Application.WindowState = xlMaximized
ThisWorkbook.Windows(1).WindowState = xlMaximized
'Application.Wait Now + TimeSerial(0, 0, 3)
ThisWorkbook.Activate
Application.Wait Now + TimeSerial(0, 0, 2)
ThisWorkbook.Close
End Sub


Anzeige
Falscher Code, I'm out!, sorry (owT)
04.03.2009 10:09:01
Renee

AW: Falscher Code, I'm out!, sorry (owT)
05.03.2009 14:20:43
Nepumuk
Hallo Werner,
ich warte immer noch auf den Code, der den Internet-Explorer öffnet. Wie du das Makro zum öffnen aufrufst ist nicht von Bedeutung.
Den ersten potentiellen Antworter hast du schon vergrault.
Gruß
Nepumuk
AW: Falscher Code, I'm out!, sorry (owT)
05.03.2009 14:41:31
Werner
Ich habe doch einen Code gepostet...
Vielleicht ist es das hier was du meinst?

Sub Start()
Dim liDurchlauf As Integer
'erhöhe den Wert 1 to ? um so viele Durchläufe, wie du benötigst
For liDurchlauf_IE = 1 To 6
Select Case liDurchlauf_IE
Case 1
'Call neue_IE_instanz("file:///M:/Koblenz/Projects/Statistik/ _
Arbeitshilfe_DMS/ArbAwKoblenz/Index.htm")
Call neue_IE_instanz(Range("C6").Value)
Case 2
Call neue_IE_instanz(Range("C7").Value)
Case 3
Call neue_IE_instanz(Range("C8").Value)
Case 4
Call neue_IE_instanz(Range("C9").Value)
Case 5
Call neue_IE_instanz(Range("C10").Value)
Case 6
Call neue_IE_instanz(Range("C11").Value)
'Case 7
'    Call neue_IE_instanz(Range("C12").Value)
End Select
Next
'erhöhe den Wert 3 um so viele Durchläufe, wie du benötigst
For liDurchlauf_XL = 1 To 1
Select Case liDurchlauf_XL
Case 1
'trage hier deine richtigen Pfade + Dateinamen ein
'Call NeueXLSitzung("M:\Koblenz\Projects\Statistik\Arbeitshilfe_DMS\ _
ArbAwKoblenz\Abgabe Bea\Abgabe BEA.xls")
'                Case 2
'                    Call NeueXLSitzung("D:\aMappe2.xls")
'                Case 3
'                    Call NeueXLSitzung("D:\kopie.xls")
'Case X
'vervollständige Case X analog zu liDurchlauf
End Select
Next
Application.WindowState = xlMaximized
ThisWorkbook.Windows(1).WindowState = xlMaximized
'Application.Wait Now + TimeSerial(0, 0, 3)
ThisWorkbook.Activate
Application.Wait Now + TimeSerial(0, 0, 2)
ThisWorkbook.Close
End Sub



Sub neue_IE_instanz(ByVal URL_Neu As String)
Dim myIE As Object
Set myIE = CreateObject("InternetExplorer.Application")
myIE.Visible = True 'True
myIE.Navigate (URL_Neu)
'    myIE.fullscreen = False 'True
'    Do While myIE.Busy
'    Loop
'    Do While myIE.Document.readyState  "complete"
'    Loop
Set myIE = Nothing
End Sub


Nicht um sonst steht bei mir, dass ich kein VBA-Profi bin.
Ich dachte ich hätte das Richtige geschickt.
Werner

Anzeige
AW: Falscher Code, I'm out!, sorry (owT)
05.03.2009 15:30:36
Nepumuk
Hallo Werner,
mit dem richtigen Code ist das ganz einfach ;-)
Option Explicit

Private Declare Function GetSystemMetrics Lib "user32.dll" ( _
    ByVal nIndex As Long) As Long
Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" ( _
    ByVal lpClassName As String, _
    ByVal lpWindowName As String) As Long
Private Declare Function GetWindowRect Lib "user32.dll" ( _
    ByVal hWnd As Long, _
    ByRef lpRect As RECT) As Long

Private Const SM_CXSCREEN = 0
Private Const SM_CYSCREEN = 1
Private Const GC_CLASSNAMETRAY = "Shell_TrayWnd"

Private Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
End Type

Sub neue_IE_instanz(ByVal URL_Neu As String)
    
    Dim myIE As Object
    Dim hWnd As Long
    Dim udtRect As RECT
    
    hWnd = FindWindow(GC_CLASSNAMETRAY, vbNullString)
    Call GetWindowRect(hWnd, udtRect)
    
    Set myIE = CreateObject("InternetExplorer.Application")
    
    myIE.Visible = True 'True
    myIE.Navigate (URL_Neu)
    myIE.FullScreen = False 'True
    
    ' Do While myIE.Busy
    ' Loop
    
    ' Do While myIE.Document.readyState <> "complete"
    ' Loop
    
    With myIE
        .Left = 0
        .Width = GetSystemMetrics(SM_CXSCREEN) / 2
        .Top = GetSystemMetrics(SM_CYSCREEN) / 2
        .Height = GetSystemMetrics(SM_CYSCREEN) / 2 - (udtRect.Bottom - udtRect.Top)
    End With
    
    Set myIE = Nothing
    
End Sub

Gruß
Nepumuk
Anzeige
AW: Falscher Code, I'm out!, sorry (owT)
05.03.2009 15:58:28
Werner
Sieht gut aus.
Dankeschön!
Gruß
Werner
;
Anzeige
Anzeige

Infobox / Tutorial

Fenstergröße und -position im Internet Explorer festlegen


Schritt-für-Schritt-Anleitung

Um die Fenstergröße und Position des Internet Explorers (IE) von Excel aus festzulegen, kannst du folgenden VBA-Code verwenden. Dieser Code öffnet die IE-Fenster in der gewünschten Größe und Position.

  1. Öffne Excel und drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.
  2. Erstelle ein neues Modul, indem du im Projekt-Explorer mit der rechten Maustaste auf „VBAProject“ klickst und „Einfügen“ > „Modul“ wählst.
  3. Füge den folgenden Code in das Modul ein:
Option Explicit

Private Declare Function GetSystemMetrics Lib "user32.dll" (ByVal nIndex As Long) As Long
Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindowRect Lib "user32.dll" (ByVal hWnd As Long, ByRef lpRect As RECT) As Long

Private Const SM_CXSCREEN = 0
Private Const SM_CYSCREEN = 1
Private Const GC_CLASSNAMETRAY = "Shell_TrayWnd"

Private Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
End Type

Sub neue_IE_instanz(ByVal URL_Neu As String)
    Dim myIE As Object
    Dim hWnd As Long
    Dim udtRect As RECT

    hWnd = FindWindow(GC_CLASSNAMETRAY, vbNullString)
    Call GetWindowRect(hWnd, udtRect)

    Set myIE = CreateObject("InternetExplorer.Application")
    myIE.Visible = True
    myIE.Navigate (URL_Neu)
    With myIE
        .Left = 0
        .Width = GetSystemMetrics(SM_CXSCREEN) / 2
        .Top = GetSystemMetrics(SM_CYSCREEN) / 2
        .Height = GetSystemMetrics(SM_CYSCREEN) / 2 - (udtRect.Bottom - udtRect.Top)
    End With

    Set myIE = Nothing
End Sub
  1. Rufe die Subroutine neue_IE_instanz mit der URL auf, die du öffnen möchtest.

Häufige Fehler und Lösungen

  • Fehler: Internet Explorer öffnet sich nicht.

    • Stelle sicher, dass der Internet Explorer auf deinem Computer installiert und korrekt konfiguriert ist. Überprüfe auch, ob VBA korrekt aktiviert ist.
  • Fenstergröße wird nicht wie gewünscht eingestellt.

    • Überprüfe den Code auf mögliche Fehler und stelle sicher, dass die Werte für Left, Top, Width und Height korrekt definiert sind.

Alternative Methoden

Wenn du die Fenstergröße und -position nicht über VBA steuern möchtest, könntest du auch versuchen, die Einstellung über die Windows-Systemsteuerung zu ändern. Hier sind die Schritte:

  1. Öffne den Internet Explorer.
  2. Klicke auf das Symbol in der oberen rechten Ecke und wähle "Internetoptionen".
  3. Gehe zum Tab "Erweitert" und suche nach den Optionen zur Fensteranpassung.

Praktische Beispiele

Hier sind einige Beispiele, die die Verwendung des Codes verdeutlichen:

  • Um ein neues IE-Fenster mit einer bestimmten URL zu öffnen:
Sub OpenIE()
    Call neue_IE_instanz("http://www.example.com")
End Sub
  • Um mehrere Fenster zu öffnen, kannst du eine Schleife verwenden:
Sub OpenMultipleIEs()
    Dim i As Integer
    For i = 1 To 4
        Call neue_IE_instanz("http://www.example" & i & ".com")
    Next i
End Sub

Tipps für Profis

  • Verwende Application.Wait, um sicherzustellen, dass das IE-Fenster vollständig geladen ist, bevor du mit weiteren Befehlen fortfährst.
  • Nutze die Error Handling-Methoden in VBA, um mögliche Fehler beim Öffnen von IE zu erfassen und zu beheben.
On Error Resume Next
' Dein Code hier
On Error GoTo 0

FAQ: Häufige Fragen

1. Wie kann ich die Fenstergröße beim Öffnen von IE in Windows 10 festlegen? Du kannst den oben genannten VBA-Code verwenden, um die Fenstergröße in Windows 10 festzulegen. Der Code funktioniert auch in Windows 11.

2. Funktioniert dieser Code auch mit Internet Explorer 7? Ja, der Code sollte auch in IE 7 funktionieren, sofern dein System die entsprechenden Bibliotheken unterstützt.

3. Was muss ich tun, wenn ich die Fenstergröße in einem HTML-Dokument festlegen möchte? In HTML kannst du die Fenstergröße mit JavaScript festlegen, jedoch ist dies nicht direkt über Excel möglich. Der VBA-Ansatz ist hier effektiver.

4. Wie kann ich die Fenstergröße in Windows 10 speichern? Die Fenstergröße wird automatisch gespeichert, wenn du das Fenster schließt. Wenn es beim nächsten Öffnen nicht wie gewünscht ist, musst du möglicherweise die Einstellungen in Windows oder dem Internet Explorer überprüfen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige