Wie kann ich mit Visual Basic den IE steuern aus Outlook heraus steuern

nickinami

Grünschnabel
Hallo werte Experten,

mein Problem ist folgendes, ich habe mit VBA ein Macro für Outlook geschrieben, dass angeklickte Mails per Knopfdruck in ein Forum postet.

Getan wird das
mit Hilfe einer Instanz des IE. Mit dieser wird dann zu den entsprechenden Seiten navigiert und der Eintrag in das Forum vorgenommen.

Dim oExplorer As Outlook.Explorer
Set oExplorer = Application.ActiveExplorer

...navigate... und so weiter

Problematisch ist nur, dass ich dazu einige Bibliotheken verlinken muss und die Installation doch recht kompliziert ist. Daher ist die Verteilung des Makros problematisch.

Nun habe ich gehört, dass man mit dem VisualStudio Addins für Outlook in Visual Basic schreiben kann. Ist eine derartige Umsetzung möglich. Sprich ich muss die angeklickte Mail finden und dann eine IE instanz steuern können, dort HTML-Elemente für "virtuelle Klicks" identifizieren und in HTML-Formulare eintragungen vornehmen können und das alles mittels Visual Basic.

Für Hinweise zur Problemlösung oder für Links zu solchen Hinweisen wäre ich auch sehr dankbar...

Vielen Dank für eure Hilfe im voraus...
LG
nicki
 
Zuletzt bearbeitet:
Du kannst in Outlook eigentlich ganz einfach eine Form erstellen und ein Webbrowser-Element drauf setzen. Das ganze geht dann wie in diesem Tipp, ist sicher die einfachere Möglichkeit für dein Problem.


Der Doc!
 
Danke für deine schnelle Antwort, aber ich sehe leider nicht, wie darin der
IE instanziert, geöffnet und auf die entsprechende Seite gegangen wird.

Ich muss über ein Anmeldeformular den zunächst entsprechenden Nutzer am Forum anmelden um überhaupt etwas posten zu können.
Oder hab ich da übersehen?

weiter Hinweise oder Tipps, sind gern willkommen ;)

LG
nicki
 
Zuletzt bearbeitet:
Da ist nix mit Instanzen und ähnlichem Zeug, du erstellst eine Form in Outlook (im Visual-Basic-Editor von Outlook) und pappst einfach ein Webbrowser-Steuerelement drauf (Extras - Steuerelemente -> Element heißt Microsoft Webbrowser). Dann kannst du das ganze so ansprechen wie im Beispiel im obrigen Post, du brauchst keine extra Verweise oder Instanzen auf den IE.


Der Doc!
 
Hallo Doc,

ich glaube ich bin jetzt erstmal prinzipiell dahinter gestiegen, wie das überhaupt funktionieren soll. Ich hab das so verstanden, dass letztenendes, alles was ich im
extra IE machen wollte dann in wbrWebBrowser funktioniert. Und da kann auch über mehrere Seiten navigiert werden?

in folgender Zeile erhalte ich immer die Fehlermeldung: "Objekt erforderlich"

wbrWebBrowser.Navigate App.Path & "\form.htm"

Ich habe auch den Pfad angepasst gehabt, dass es dir Datei wirklich gibt.
Auch hatte ich eine URL anstatt von "\form.htm" und das ist ja ziel der sache versucht, ohne Erfolg.

LG
Nicki
 
Zuletzt bearbeitet:
Bei mir funktioniert so ein Aufruf, kannst du mal mehr von deinem Code posten? Vielleicht steckt der Fehler schon vorher und wirkt sich erst dort aus (benutze zum posten von VB-Code die Tags [code=vb] und [/code]).

EDIT: Ich sehs erst jetzt, unter VBA gibt es kein App.Path. Du müsstest den Pfad vorher festlegen.


Der Doc!
 
Zuletzt bearbeitet:
Ich hab das gefühl ich hab schon völlig falsch angefangen.
Ich habe den Code so wie er war ins Outlook kopiert und dort auch das Form1 erstellt, mit entsprechenden Namen.
Sicherlich hätte ich das wo anders machen müssen.
Dann hab ich Form_load aufgerufen und Form1.show

EDIT: also anstatt von App.Path habe ich jetzt den Pfad zu IE.exe als String hingeschrieben, aber er scheint die Downloaden zu wollen anstatt sie auszuführen.
 
Zuletzt bearbeitet:
Das Problem ist, dass VB und VBA teilweise unterschiedlich sind, VBA wurde an die Bedürfnisse von Word, Excel und Konsorten angepasst, da sind einige Befehle anders/neu und einige weg.

Vom App.Path mal abgesehen sollte das ganze aber ohne Probleme übernehmbar sein, da du online zugreifen willst, sollte hier sowieso eine Webadresse und nicht eine lokale Datei übergeben werden.


Der Doc!
 
entschuldige, ich meinte natürlich, dass er versucht die ie.exe zu downloaden.
Wie sollte ich denn den pfad übergeben?

in der Art habe ichs gemacht:

Form1.wbrWebBrowser.Navigate "C:\Programme\Internet Explorer\iexplore.exe" & " c:\form.htm"

LG
nicki
 
Du brauchst den Pfad zum IE nicht angeben, dazu hast du ja das Steuerelement auf deiner Form. Dieses Element zeigt dir eine Webseite so an, als würdest du sie im IE ansehen. Dein Code bräuchte also nur so aussehen:
Visual Basic:
'Webbrowser-Steuerelement "wbrWebBrowser"
'2 CommandButtons "CommandButton1" & "CommandButton1"

'dieser Code zeigt eine lokale HTML-Datei an.
Private Sub CommandButton1_Click()
 sURL = "C:\form.html"
 wbrWebBrowser.Navigate sURL
End Sub

'dieser Code zeigt eine Internetseite an.
Private Sub CommandButton2_Click()
 'dieser Code zeigt eine lokale HTML-Datei an.
 sURL = "http://www.google.de"
 wbrWebBrowser.Navigate sURL
End Sub

Wenn die Seite nun geladen ist, kannst du die Formularfelder dann ansprechen:
Visual Basic:
'den tust du dann in die Prozedur, wo du deine Felder befüllst
'mit diesem Code befüllst du das erste Feld in der Webseite
wbrWebBrowser.Document.Forms(0).feld1.Value = "Erstes Feld befüllt!"

Du brauchst also keine ie.exe oder ähnliches, dafür ist ja das Steuerelement da.


Der Doc!
 

Neue Beiträge

Zurück