Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Breite anpassen Webbrowser-Element

Forumthread: Breite anpassen Webbrowser-Element

Breite anpassen Webbrowser-Element
KLE
Hi,
...noch eine Frage heut. Ich habe eine Userform mit einem WebBrowser-Element, welches Bilder und PDFs anzeigt, die der User zuvor in einer Liste markiert hat. Nun sind die Dokumente z.T. leider sehr unterschiedlich in derer Breite und Auflösung.
Kann man es so einstellen, dass das geladene Bild/Datei wenn es breiter ist wie das Webbrowser-Element, auf die Breite gezoomt wird ?!? Um das scrollen in der Breite unnötig zu machen und vor allem, einen schnelleren Überblick über das Dokument zu erhalten!
Kleinere Bilder brauchen da nicht angepasst werden....
Gruß und Danke für Eure Anregungen und Hilfen...
Gruß
Kay
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Breite anpassen Webbrowser-Element
05.01.2012 08:28:24
Beverly
Hi Kay,
stelle die Eigenschaft PictureSiceMode auf fmPictureSizeModeZoom. Damit werden allerdings alle Bilder an die Größe des Steuerelementes angepasst


AW: kann ich die Eigenschaft nicht finden
06.01.2012 19:45:54
KLE
Habe bei den Eigenschaften vom Element "WebBrowser" kein Feld: PictureSiceMode ?!?
Und wenn ich per Code dem Element die Eigenschaft vergeben will, erhalte ich die Fehlermeldung 438, dass die Eigenschaft von dem Objekt nicht unterstztütz wird.
Gibt es neben den "Standard-Element" in der Werkzeugleiste ein anderes WebBrowser-Element?
Gruß und Danke...
Kay
Anzeige
AW: kann ich die Eigenschaft nicht finden
06.01.2012 19:55:44
Beverly
Hi Kay,
sorry, da hatte ich deine Frage nicht richtig durchgelesen - ich bin von einem Image-Steuerelement und nicht von einem WebBrowser-Steuerelement ausgegangen.
Ich lasse die Frage offen.


Anzeige
Breite anpassen Webbrowser-Element
08.01.2012 12:18:30
Anton
Hallo Kay,
so?:
Code:

Private Sub CommandButton1_Click()  
  Me.WebBrowser1.Navigate "about:blank"
  Do
    DoEvents
  Loop Until Me.WebBrowser1.Document.ReadyState = "complete"    
  bild = "E:\Temp\Cats.jpg" 'anpassen
  msg = "<img src='" & bild & "' width='100%' height='100%'>"
  Me.WebBrowser1.Document.body.innerhtml = msg
End Sub  


mfg Anton
Anzeige
Nicht schlecht, aber wie kann ich die...
10.01.2012 11:10:28
KLE
Höhe des Bildes unverändert lassen?
D.h. ich möchte nicht beides (Höhe und Breite) anpassen auf das WebBrowser-Element, sondern nur die Breite. Denn sonst sind meine A4-Grafiken sehr "gestaucht" und dann kann man sie nicht richtig lesen.
Ich möchte halt gern, dass kleine Grafiken normal angezeigt und große Grafiken in Ihrer Breite angepasst werden. Das scrollen nach unten kann ruhig bleiben...
Wie ermittle ich von der zuladenden JPG-Datei die Breite und Höhe in Pixel, um diese dann entsprechend Deinem Code zu übergeben, wenn Sie größer sind, wie das Browser-Element.
Gruß und Danke
Kay
Anzeige
Nur Breite
10.01.2012 18:00:59
Anton
Hallo Kay,
probier sowas:
Code:

Private Sub CommandButton1_Click()  
  Me.WebBrowser1.Navigate "about:blank"
  Do
    DoEvents
  Loop Until Me.WebBrowser1.Document.ReadyState = "complete"    
  bild = "E:\Temp\Cats.jpg" 'anpassen
  If Len(Dir(bild, vbNormal)) = 0 Then Exit Sub    
  Set objShell = CreateObject("Shell.Application")  
  ordner = Left(bild, InStrRev(bild, "\"))
  Set objFolder = objShell.Namespace(ordner)
  Set objbild = objFolder.ParseName(Mid(bild, InStrRev(bild, "\") + 1))  
  For i = 0 To 300  
    If objFolder.GetDetailsOf(, i) = "Abmessungen" Then  
      breite = Split(objFolder.GetDetailsOf(objbild, i), " ")(0)
      Exit For  
    End If  
  Next
  Set objShell = Nothing  
  If breite > Me.WebBrowser1.Width Then  
    msg = "<img src='" & bild & "' width='100%'>"
  Else
    msg = "<img src='" & bild & "'>"
  End If  
  Me.WebBrowser1.Document.body.innerhtml = msg
End Sub  


mfg Anton
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Breite anpassen Webbrowser-Element in Excel


Schritt-für-Schritt-Anleitung

  1. Userform erstellen: Öffne Excel und erstelle eine Userform.

  2. WebBrowser-Element hinzufügen: Füge ein WebBrowser-Steuerelement zu Deiner Userform hinzu. Dies kannst Du über die Toolbox machen.

  3. Code für die Anpassung: Füge einen CommandButton zur Userform hinzu und schreibe den folgenden Code:

    Private Sub CommandButton1_Click()
        Me.WebBrowser1.Navigate "about:blank"
        Do
            DoEvents
        Loop Until Me.WebBrowser1.Document.ReadyState = "complete"
    
        bild = "E:\Temp\Cats.jpg" ' Pfad zur Bilddatei
        Set objShell = CreateObject("Shell.Application")
        ordner = Left(bild, InStrRev(bild, "\"))
        Set objFolder = objShell.Namespace(ordner)
        Set objbild = objFolder.ParseName(Mid(bild, InStrRev(bild, "\") + 1))
    
        ' Breite des Bildes ermitteln
        For i = 0 To 300
            If objFolder.GetDetailsOf(, i) = "Abmessungen" Then
                breite = Split(objFolder.GetDetailsOf(objbild, i), " ")(0)
                Exit For
            End If
        Next
    
        ' Breite anpassen
        If breite > Me.WebBrowser1.Width Then
            msg = "<img src='" & bild & "' width='100%'>"
        Else
            msg = "<img src='" & bild & "'>"
        End If
    
        Me.WebBrowser1.Document.body.innerhtml = msg
    End Sub
  4. Code anpassen: Ersetze den Bildpfad mit dem Pfad zu Deiner Datei.

  5. Testen: Führe die Userform aus und teste die Funktionalität.


Häufige Fehler und Lösungen

  • Fehler 438: Wenn Du die Fehlermeldung 438 erhältst, bedeutet das, dass die Eigenschaft nicht unterstützt wird. Stelle sicher, dass Du das korrekte Steuerelement (WebBrowser) verwendest. Das PictureSizeMode ist nicht für das WebBrowser-Steuerelement verfügbar.

  • Bilder werden nicht geladen: Überprüfe den Bildpfad und stelle sicher, dass die Datei existiert. Das Bild muss in einem unterstützten Format vorliegen.


Alternative Methoden

Wenn Du das Aussehen des Bildes weiter anpassen möchtest, kannst Du auch CSS-Stile verwenden. Statt die Breite allein anzupassen, kannst Du dem Bild auch eine maximale Höhe geben, um die Lesbarkeit zu verbessern.

<img src="E:\Temp\Cats.jpg" style="max-width:100%; height:auto;">

Praktische Beispiele

Hier sind einige Beispiele, wie Du den WebBrowser in VBA anpassen kannst:

  1. PDF-Dokumente laden: Um PDF-Dateien anzuzeigen, kannst Du die WebBrowser1.Navigate Methode verwenden und den Pfad zur PDF-Datei angeben.

    Me.WebBrowser1.Navigate "C:\Pfad\zur\deiner\Datei.pdf"
  2. Dynamische Bildanpassung: Der oben gezeigte Code ermöglicht es Dir, Bilder dynamisch je nach Breite anzupassen.


Tipps für Profis

  • Fehlerbehandlung: Implementiere eine Fehlerbehandlung, um sicherzustellen, dass der Benutzer über Probleme informiert wird, falls das Bild nicht geladen werden kann.

  • Optimierung der Ladezeiten: Versuche, die Ladezeiten zu optimieren, indem Du die Bilder komprimierst oder in einem schnelleren Format speicherst.

  • Nutzung von webbrowser1.navigate vba: Erkunde die Navigate-Funktion weiter, um Websites oder Online-Inhalte direkt in Deinem Excel-Webbrowser anzuzeigen.


FAQ: Häufige Fragen

1. Wie kann ich die Breite des WebBrowser-Elements ändern?
Du kannst die Breite des WebBrowser-Elements über die Eigenschaften der Userform im Design-Modus anpassen.

2. Funktioniert das auch in Excel 2016?
Ja, die beschriebenen Methoden sind mit Excel 2010 und höher kompatibel, einschließlich Excel 2016.

3. Was kann ich tun, wenn das WebBrowser-Steuerelement nicht angezeigt wird?
Stelle sicher, dass Du die richtigen Verweise in Deinem VBA-Projekt gesetzt hast. Es könnte notwendig sein, die Handhabung von ActiveX-Steuerelementen in den Excel-Einstellungen zu aktivieren.

4. Kann ich auch Videos einbinden?
Ja, Du kannst Videos im WebBrowser-Element einbinden, indem Du den entsprechenden HTML-Code verwendest.

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