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

HTMLDocument als Variable an WebBrowser1 übergeben

Forumthread: HTMLDocument als Variable an WebBrowser1 übergeben

HTMLDocument als Variable an WebBrowser1 übergeben
14.10.2014 17:20:53
Martin
Hallo,
ich beabsichtige HTML-Seiten dynamisch als Object-Variable (HTMLDocument) zu erzeugen und in einem WebBrowser-Control in einem UserForm zu laden. Im Prinzip habe ich das auch hinbekommen (siehe Code), aber kann ich die HTMLDocument-Variable auch direkt an das WebBrowser-Control übergeben? Mir erscheint es etwas umständlich, dass der HTML-Code "abgeschrieben" wird:
Private Sub UserForm_Initialize()
Dim objHTMLDoc As Object
'Set objHTMLDoc = New HTMLDocument 'early binding
Set objHTMLDoc = CreateObject("htmlfile")  'late binding
With objHTMLDoc
.Open
.write "Das ist ein sinnloser HTML-Text eines virtuellen HTMLDocuments"
.Close
End With
With WebBrowser1
.Navigate "about:blank"
.Document.write objHTMLDoc.documentElement.outerHTML
.Document.Close
End With
End Sub
Statt der Zeile
WebBrowser1.Document.write objHTMLDoc.documentElement.outerHTML
...müsste es doch etwas geben wie...
WebBrowser1.Document = objHTMLDoc
Ich bin nur neugierig, ob ich mich einfach etwas umständlich anstelle.
Viele Grüße
Martin

Anzeige

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

Betreff
Datum
Anwender
Anzeige
HTMLDocument als Variable an WebBrowser1 übergeben
14.10.2014 17:29:18
Anton
Hallo Martin,
meinst du so?:
WebBrowser1.document.body.innerHTML = "dein HTML-Text"

mfg Anton

AW: HTMLDocument als Variable an WebBrowser1 übergeben
14.10.2014 17:36:39
Martin
Hallo Anton,
vielen Dank für deine schnelle Antwort. Anscheinend habe ich mein Anliegen zu vereinfacht _ dargestellt. Es geht mir am Ende darum, dass ich eine Object-Variable (HTML-Document) per Function direkt an das WebBrowser-Control übergeben will. Es interessiert mich also, ob es etwas wie

WebBrowser1.Document = objHTMLDoc
gibt (...ohne, dass das WebBrowser-Document neu geschrieben werden muss).
Viele Grüße
Martin

Anzeige
Ein HTMLDocument ist Text und kann als ...
14.10.2014 17:44:33
Luc:-?
…solcher durchaus in einer Variablen angelegt sein, Martin;
das hatte wohl Anton gemeint, während du ein Objekt meinst. Das sollte gehen, wenn sowohl objHTMLDoc als auch WebBrowser1.Document geeignete Objekte gleichen Typs sind. In VBA dann allerdings mit Set-Befehl. Probier's einfach mal aus!
Gruß, Luc :-?

Anzeige
...bitte sieh dir mal folgenden Code an....
14.10.2014 18:03:29
Martin
Hallo Luc,
auch dir vielen Dank für deine Hilfsbereitschaft. Dass ich den HTML-Code einfach als String-Variable übergeben könnte, ist mir auch klar. Aber wie kann ich das HTML-Dokument als Object-Variable (HTMLDocument) übergeben? Ich habe es mit folgenden Code-Varianten probiert (der 1. Versuch musste schiefgehen, aber ich wollte die von dir angesprochene Set-Anweisung auch mal ausprobieren, oder meintest du etwas anderes?):
Private Sub UserForm_Initialize()
Dim objHTMLDoc As Object
Set objHTMLDoc = New HTMLDocument 'early binding
With objHTMLDoc
.Open
.write "Das ist ein sinnloser HTML-Text eines virtuellen HTMLDocuments."
.Close
End With
With WebBrowser1
.Navigate "about:blank"
'1. Versuch
Set .Document = objHTMLDoc
'2.Versuch
.Document = objHTMLDoc
End With
End Sub
Anders herum würde es ja gehen:
Private Sub UserForm_Initialize()
Dim objHTMLDoc As Object
With WebBrowser1
.Navigate "about:blank"
Set objHTMLDoc = .Document
End With
With objHTMLDoc
.Open
.write "Das ist ein sinnloser HTML-Text eines virtuellen HTMLDocuments."
.Close
End With
End Sub
Viele Grüße
Martin

Anzeige
AW: HTMLDocument als Variable an WebBrowser1 übergeben
14.10.2014 18:23:23
Anton
Hallo Martin,
du musst IMHO nicht HTML-Document an das WebBrowser-Control übergeben,
es reicht, wenn du dein HTML-Text übergibst, etwa so:
Private Sub UserForm_Initialize()
With Me.WebBrowser1
.Navigate "about:blank"
Do
DoEvents
Loop Until .Busy = False
.Document.body.innerHTML = "dein HTML-Text"
End With
End Sub
Private Sub CommandButton1_Click()
Me.WebBrowser1.Document.body.innerHTML = "mein HTML-Text"
End Sub

mfg Anton

Anzeige
AW: HTMLDocument als Variable an WebBrowser1 übergeben
14.10.2014 18:42:04
Martin
Hallo Anton,
okay, dann schreibe ich den HTML-Code in Zukunft entweder direkt in eine String-Variable oder übergebe wie bisher den HTML-Code mit Auslesens der HTMLDocument-Objectvariable. Vielen Dank für deine Bemühungen.
Viele Grüße
Martin
;
Anzeige

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