Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
440to444
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
440to444
440to444
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Wie starte ich in Outlook ein Excelmakro?

Wie starte ich in Outlook ein Excelmakro?
11.06.2004 17:36:22
Vera
Hallo Excelfreunde,
ich habe ein Makro entwickelt, welches mir eBay Auktionsmeldungen verarbeitet wenn sich die entsprechende Outlook-Auktionsmail in der Zwischenablage befindet.
Jetzt möchte ich das System erweitern und von Outlook aus dieses Excelmakro starten.
Frage: Wie starte ich in Outlook ein Excelmakro (Vorher muß wohl erst die entsprechende Mappe von Outlook gestartet werden.)
Und wie bekomme ich eine OutlookMail in die Zwischenablage?
Bin für jeden guten Tipp dankbar!
Liebe Grüße
Vera

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wie starte ich in Outlook ein Excelmakro?
14.06.2004 18:38:37
Jens
Hallo Vera!
Du schreibst "wenn sich die entsprechende Outlook-Auktionsmail in der Zwischenablage befindet." und dann willst du sie erst in die Zwischenablage bekommen; ganz oder nur Teile?
Gegenfrage: Du musst doch sicherlich alle Auktionsdaten in Excel haben, also warum startest du nicht von dort aus? Emails lese ich z.z. auch noch "zu Fuß" aus (Text kopieren, in Hilfsblatt einfügen - dort wird der Text in Feldern von Excel ausgelesen, diese Feldinhalte ins Hauptblatt übertragen/eingelesen und dann kann ich auf Klick aus den Exceldaten ein Outlook-Mail an meinen Ebay-Partner schreiben (lassen).
Ich schaue nachher noch mal ins Forum (ab 20.00 Uhr) - wenn du Lust hast, antworte mal wieder. Ciao!
Grüße,
Jens
Anzeige
AW: Wie starte ich in Outlook ein Excelmakro?
14.06.2004 18:53:07
Vera
Hallo Jens,
ich bekomme von eBay eine Auktionsmail.
Jetzt möchte ich in Outlook ein Outlook-Makro starten, welches die komplette eMail in die Zwischenablage kopiert und anschließend ein Excelmakro startet welches die eMail weiter verarbeitet. (Eintragen von Artikel, Preis usw. in eine Datenbank).
Das Excelmakro zur Auswertung ist fertig.
Es fehlt mir das Outlookmakro.
Leider kann man in Outlook nicht aufzeichnen, sonst hätte ich das sicher irgend wie hinbekommen.
Vielleicht kennt jemand ein Outlookforum oder hat einen anderen Tipp.
Liebe Grüße
Vera
AW: Wie starte ich in Outlook ein Excelmakro?
14.06.2004 20:02:49
Jens
Hallo Vera!
Ich habe hier was gefunden (nicht von mir - aber man sammelt halt ja Code ...):
E-Mail-Inhalte ganz einfach an Excel und Word
uebergeben, Teil 1
---------------------------------------------
Versionen: Outlook, Word und Excel 2000 und 2002/XP
Haeufig moechten Sie Passagen aus E-Mails wie Adressen,
Produktinfos oder Preise in eine Excel-Tabelle oder ein
Word-Dokument uebernehmen. Die Zwischenablage ist dabei ein
oft genutzter Weg, der allerdings recht umstaendlich ist.
Unser zweiteiliger Tipp der Woche stellt eine "Ein-
Mausklick"-Loesung vor. Im ersten Teil vermitteln wir die
notwendigen Grundlagen, der zweite Teil zeigt dann die
komplette Realisierung eines entsprechenden Add-Ins fuer
Outlook.
Beginnen wir mit einer kleinen Betrachtung der speziellen
Problematik einer solchen Loesung. Zuerst einmal muessen Sie
auf die aktuell angezeigte Nachricht zugreifen koennen.
Outlook stellt zu diesem Zweck ein Objekt "Inspector" zur
Verfuegung, bei dem es sich einfach ausgedrueckt um ein
Fenster handelt, das ein Element aus einem Ordner anzeigt.
Der jeweils aktuelle Inspector laesst sich ueber die
Eigenschaft "Application.ActiveInspector" zum Beispiel wie
folgt ermitteln:
Dim objInsp As Inspector
Set objInsp = ActiveInspector
Die Objektvariable "objInsp" enthaelt anschliessend eine
Referenz auf den aktuellen Inspector, ueber dessen
Eigenschaften und Methoden Sie nun auf das jeweils
angezeigte Element, also beispielsweise eine Nachricht,
einen Termin, eine Aufgabe, einen Kontakt oder eine Notiz
zugreifen kann.
Dazu stellt das "Inspector"-Objekt die Eigenschaft
"CurrentItem" zur Verfuegung, die eine Referenz auf ein
Element des Typs des jeweiligen Ordners liefert. Beim
Posteingang waere dies ein Element vom Typ "olMailItem". Um
darauf zugreifen zu koennen, waere zum Beispiel eine
Initialisierung wie die folgende notwendig:
Dim objInsp As Inspector
Dim objMail As MailItem
Set objInsp = ActiveInspector
Set objMail = objInsp.CurrentItem
Die Objektvariable "objMail" enthaelt nun eine Referenz auf
die aktuelle Nachricht und erlaubt das Auslesen
verschiedener Eigenschaften wie zum Beispiel "Subject" fuer
die Betreffzeile oder "Body" fuer den Text der Nachricht.
Die folgenden Anweisungen geben beispielsweise in einer
Meldungsbox Betreffzeile und Nachrichtentext der aktuellen
Nachricht aus:
Dim objInsp As Inspector
Dim objMail As MailItem
Dim strSubj As String, strText As String
Set objInsp = ActiveInspector
Set objMail = objInsp.CurrentItem
strSubj = objMail.Subject
strText = objMail.Body
MsgBox strSubj & vbCrLf & vbCrLf & _
strText
Um markierten Text oder den kompletten Text einer Nachricht
zu uebernehmen, ist ein Zugriff auf die Eigenschaft "Body"
notwendig. Hier zeigt sich jedoch das naechste Problem: Wenn
Sie eine Nachricht anzeigen lassen, kann die Nachricht
unterschiedliche Formate haben. Je nach Format der Nachricht
zeigt Outlook verschiedene Bearbeitungs-Fenster an: Fuer das
Format "HTML" werden Komponenten des Internet Explorers fuer
die Anzeige herangezogen, fuer die Formate "RTF" und "Nur-
Text" verwendet Outlook einen einfachen, internen
Nachrichten-Editor. Etwas anders sieht es aus, wenn Word als
E-Mail-Editor eingestellt ist: Fuer HTML-E-Mails werden nach
wie vor Komponenten des Internet Explorers benutzt, fuer E-
Mails im Format "RTF" jedoch der WordMail-Editor und fuer
"Nur-Text"-E-Mails wird teilweise WordMail und teilweise der
interne, einfache Editor von Outlook verwendet. Warum
Outlook fuer "Nur Text" mal WordMail und mal den internen
Editor fuer die Anzeige verwendet, konnte anhand der
Dokumentation nicht geklaert werden. Es spielt fuer unsere
Loesung zunaechst auch keine besondere Rolle, wie wir weiter
unten sehen werden.
Abhaengig vom Format kommen also verschiedene Editoren
beziehungsweise Anzeige-Modi zum Einsatz. Diese lassen sich
mit Hilfe von zwei Eigenschaften des "Inspector"-Objektes
identifizieren: "EditorType" gibt zunaechst ueber das Format
Auskunft. Moegliche Werte sind hier "olEditorHTML",
"olEditorRTF", "olEditorText" und "olEditorWord". Ueber eine
"If...Then"-Abfrage wie die folgende kann man also zunaechst
das Format der aktuellen Nachricht ueberpruefen und
abhaengig davon reagieren:
If objInsp.EditorType = olEditorWord Then
...
ElseIf objInsp.EditorType = olEditorHTML Then
...
ElseIf objInsp.EditorType = olEditorRTF Then
...
ElseIf objInsp.EditorType = olEditorText Then
.....
End If
Der Wert "olEditorWord" sagt jedoch noch nicht aus, ob die
Nachricht auch tatsaechlich in Word angezeigt wird. Dazu
muss eine weitere Eigenschaft "IsWordMail" des "Inspector"-
Objektes abgefragt werden. Die oben gezeigte Konstruktion
sieht dann so aus:
If objInsp.IsWordMail And _
objInsp.EditorType = olEditorWord Then
.....
ElseIf objInsp.EditorType = olEditorHTML Then
.....
ElseIf objInsp.EditorType = olEditorRTF Then
.....
ElseIf objInsp.EditorType = olEditorText Then
.....
End If
Ist das Format der Nachricht und der Typ des gerade
verwendeten Editors geklaert, kann es daran gehen, die
aktuelle Markierung auszulesen. Hier lauern die naechsten
Probleme: Wenn eine Nachricht im internen Editor von Outlook
angezeigt wird, kann nur der komplette Nachrichtentext
ausgelesen werden, da das Objektmodell einen Zugriff auf
markierte Passagen in diesem Modus nicht unterstuetzt. Wird
die Nachricht hingegen im HTML-Modus oder in Word angezeigt,
sind verschiedene Methoden des Zugriffs auf Markierungen zu
verwenden, da zwei verschiedene Objektmodelle - das vom
Internet Explorer und das von Word - zum Einsatz kommen.
Gluecklicherweise stellt Outlook hier zwei Eigenschaften im
"Inspector"-Objekt zur Verfuegung, die eine Referenz
entweder auf das HTML- oder auf das Word-Dokument enthalten:
"HTMLEditor" liefert eine Referenz auf ein
"MSHTML.HTMLDocument" und "WordEditor" eine Referenz auf ein
"Word.Document". Mit dem Einsatz entsprechender
Objektvariablen dieser Datentypen koennen Sie dann mehr oder
weniger einfach auf die jeweilige Markierung in der HTML-
oder WordMail-Nachricht zugreifen.
Damit auf HTML- und Word-Dokumente zugegriffen werden kann,
sind zunaechst Verweise auf beide Objektmodelle zu setzen:
1. Wechseln Sie in Outlook mit Alt+F11 in die VBA-
Entwicklungsumgebung.
2. Waehlen Sie das Menue EXTRAS-VERWEISE an.
3. Setzen Sie eine Referenz auf "Microsoft Word x.0 Object
Library", wobei "x" fuer "9" bei Word 2000 und fuer "10"
bei Word 2002 steht.
4. Setzen Sie eine weitere Referenz auf "Microsoft HTML
Object Library".
Nun koennen Sie in Outlook-Loesungen zum Auslesen der
Markierungen entsprechende Objektvariablen und Eigenschaften
beziehungsweise Methoden nutzen. Das koennte in einer
kleinen Testroutine zum Beispiel wie folgt aussehen:

Sub Test()
Dim appWord As Word.Application
Dim objWORDDoc As Word.Document
Dim objHTMLDoc As MSHTML.HTMLDocument
Dim objRange As IHTMLTxtRange
Dim appExcel As Excel.Application
Dim objInsp As Inspector
Dim objMail As MailItem
Dim strText As String, strX As String
On Error Resume Next
Set objMail = Application.ActiveInspector.CurrentItem
If Err <> 0 Then
Beep
MsgBox "Das aktuelle Element ist keine Nachricht...", _
vbOKOnly + vbExclamation, "!!! Problem !!!"
Exit 

Sub
End If
Hier ermitteln wir zunaechst ueber
"ActiveInspector.CurrentItem" eine Referenz auf das aktuelle
Element, also auf die jeweils angezeigte Nachricht. Kommt es
dabei zu einem Fehler, ist das angezeigte Element keine
Nachricht. Wir zeigen eine entsprechende Meldung an und
verlassen die Routine dann.
Set objInsp = ActiveInspector
If objInsp.IsWordMail And objInsp.EditorType = olEditorWord
Then
Set objWORDDoc = objInsp.WordEditor
Set appWord = objWORDDoc.Parent
strText = appWord.Selection.Text
strX = "Word-Mail"
In diesem Bereich holen wir uns zunaechst ueber die
"Inspector"-Eigenschaft "WordEditor" eine Referenz auf das
Dokument in die Objektvariable "objWORDDoc". Deren
Eigenschaft "Parent" erlaubt einen Zugriff auf die
verwendete Word-Instanz, die wir in "appWord" ablegen.
Darueber laesst sich dann per "Selection.Text" der markierte
Text abfragen und in einer Variablen "strText" ablegen.
"strX" weisen wir einen "Identifizierer" fuer die spaetere
Anzeige einer kleinen Meldung zu - siehe unten.
ElseIf objInsp.EditorType = olEditorHTML Then
Set objHTMLDoc = objInsp.HTMLEditor
Set objRange = objHTMLDoc.Selection.createRange
strText = objRange.Text
strX = "HTML"
Dieser Bereich ist fuer HTML-Mails zustaendig: Zunaechst
setzen wir hier in die Objektvariable "objHTMLDoc" eine
Referenz auf das HTML-Dokument, die uns die "Inspector"-
Eigenschaft "HTMLEditor" liefert. Ein direkter Zugriff auf
eine Markierung ist hier noch nicht moeglich, dazu muss erst
ueber die Methode "createRange" ein "Range"-Objekt
initialisiert werden, dessen Eigenschaft "Text" uns dann
schliesslich den markierten Text liefert.
ElseIf objInsp.EditorType = olEditorRTF Then
strText = objMail.Body
strX = "RTF"
ElseIf objInsp.EditorType = olEditorText Then
strText = objMail.Body
strX = "TXT"
End If
Diese beiden Bereiche sind zustaendig fuer "RTF"- und "Nur
Text"-Mails, wenn Word nicht als E-Mail-Editor und/oder der
interne Outlook-Editor verwendet wird. Wie bereits
erlaeutert, ist hier ein Zugriff mangels Unterstuetzung
durch das Objektmodell nicht moeglich, so dass wir nur den
kompletten Text der Nachricht ueber die Eigenschaft "Body"
ermitteln koennen.
MsgBox strX & ": " & strText
End 

Sub
Abschliessend zeigen wir eine kleine Meldung an, die ueber
"strX" das identifizierte Format - "HTML", "Word-Mail",
"RTF", "TXT" - sowie den ausgelesenen Text anzeigt.
Wie Sie sehen, ist der Zugriff auf die aktuell angezeigte
Nachricht mit einigen Problemen verbunden, die sich aber im
Grossen und Ganzen recht einfach durch die Abfrage
entsprechender Eigenschaften loesen lassen. Aufbauend auf
diesen Grundlagen zeigt der zweite Teil des Tipps der Woche,
wie Sie die markierten, ausgelesenen Texte ueber ein dafuer
angelegtes Symbol in einer Symbolleiste in eine Excel-
Tabelle oder ein Word-Dokument einfuegen.
E-Mail-Inhalte ganz einfach an Excel und Word
uebergeben, Teil 2
Versionen: Outlook, Word und Excel 2000 und 2002
Im ersten Teil dieses Tipps der Woche waren wir auf die
Problematik beim Zugriff auf E-Mails per VBA eingegangen und
hatten verschiedene Zugriffsmethoden je nach Format der E-
Mail und der Art des verwendeten Editors - HTML-Editor,
Word-Mail, interner Outlook-Editor - aufgezeigt. Wir waren
damit in der Lage, markierte Passagen oder komplette E-Mails
auszulesen und in einer Variablen zur Verfuegung zu stellen.
Der zweite Teil zeigt nun aufbauend auf den im ersten Teil
vermittelten Grundlagen die Realisierung eines Add-Ins fuer
Outlook, das die Datenuebergabe an Excel oder Word
uebernimmt.
Bei Word ist zunaechst zu pruefen, ob Word als E-Mail-Editor
fuer Outlook definiert ist oder nicht. Diese Unterscheidung
erweist sich als recht problematisch: Bei dem Versuch, mit
"GetObject()" eine Referenz auf eine Instanz von Word zu
erhalten, wird generell die unsichtbar laufende WordMail-
Instanz als Ergebnis geliefert. Selbst wenn mehrere andere
Dokumente geoeffnet sind, ist ein gezielter Zugriff darauf
nicht moeglich, da Word die einzelnen Instanzen abkapselt.
Die einzig praktikable Loesung besteht darin, die "Tasks"-
Auflistung zu pruefen: Dort ist eine unsichtbar laufende
WordMail-Instanz mit dem Namen "Microsoft Word" und "Visible
= False" verzeichnet, waehrend Dokumente im Format
"Dokumentname - Microsoft Word" und "Visible = True"
festgehalten werden. Eine Pruefung wie die folgende erlaubt
dann beispielsweise die Aktivierung des ersten Dokumentes in
der Tasks-Auflistung:
For Each objTask In appWord.Tasks
If InStr(objTask.Name, "- Microsoft Word") <> 0 And _
objTask.Visible Then
objTask.Activate
SendKeys strText, True
bolFound = True
Exit For
End If
Next objTask
Da die Tasks-Auflistung keine verwertbare Referenz vom Typ
"Word.Application", sondern auch nur wieder einen Verweis
auf die unsichtbar laufende WordMail-Instanz liefert, kann
hier nur mit "SendKeys" gearbeitet und der selektierte Text
beziehungsweise die komplette Nachricht auf diesem Wege
quasi als simulierte Tastatureingabe in das Dokument
uebertragen werden.
In Verbindung mit Excel stellt sich dieses Problem nicht:
Entweder laeuft Excel bereits, so dass wir mit "GetObject()"
eine direkt verwertbare Referenz erhalten, oder es laeuft
nicht, so dass wir mit "CreateObject()" eine neue Instanz
starten koennen. Ueber die folgende Anweisung laesst sich
der selektierte Text beziehungsweise die komplette Nachricht
in die vorhandene, aktivierte Tabelle oder in eine
gegebenenfalls neu angelegte Arbeitsmappe einfuegen:
With appExcel
If .Workbooks.Count = 0 Then
.Workbooks.Add
End If
.Visible = True
.WindowState = xlMaximized
.Windows(0).Activate
.ActiveCell.Activate
.Selection = strText
End With
Um nun eine Loesung auf dieser Basis in Outlook einzubinden,
gehen Sie wie folgt vor:
1. Druecken Sie Alt+F11, um in die VBA-Entwicklungsumgebung
zu wechseln.
2. Waehlen Sie das Menue EXTRAS-VERWEISE an und setzen Sie
Referenzen auf "Microsoft HTML Object Library",
"Microsoft Word x.0 Object Library" und "Microsoft Excel
x.0 Object Library", wobei "x" fuer "9" (Word/Excel 2000)
beziehungsweise "10" (Word/Excel 2002) steht.
3. Geben Sie im VBA-Editor die folgende Prozedur
"SelWordExcel" ein. Bitte beachten Sie, dass wir
innerhalb des Listings Kommentare zur Erlaeuterung der
Funktionsweise eingefuegt haben, die Sie natuerlich nicht
eingeben koennen:

Sub SelWordExcel()
Dim appWord As Word.Application
Dim appExcel As Excel.Application
Dim objWORDDoc As Word.Document
Dim objHTMLDoc As MSHTML.HTMLDocument
Dim objRange As IHTMLTxtRange
Dim objInsp As Inspector
Dim objMail As MailItem
Dim strText As String
Dim bolAnExcel As Boolean, bolFound As Boolean
Dim objTask As Word.Task
If Abs(GetKeyState(17) < 0) Then 'Strg gedrueckt
bolAnExcel = True
Else
bolAnExcel = False
End If
Ueber die API-Funktion "GetKeyState()" pruefen wir
zunaechst, ob die Strg-Taste gedrueckt ist und setzen ein
Kennzeichen fuer die spaetere Uebertragung.
On Error Resume Next
Set objMail = Application.ActiveInspector.CurrentItem
If Err <> 0 Then
Beep
MsgBox "Das aktuelle Element ist keine Nachricht...", _
vbOKOnly + vbExclamation, "!!! Problem !!!"
Exit Sub
End If
Dieser Bereich prueft das aktuelle Element - ist es keine
Nachricht, geben wir eine entsprechende Meldung aus und
verlassen die Routine.
Set objInsp = ActiveInspector
If objInsp.IsWordMail And objInsp.EditorType = _
olEditorWord Then
Set objWORDDoc = objInsp.WordEditor
Set appWord = objWORDDoc.Parent
strText = appWord.Selection.Text
ElseIf objInsp.EditorType = olEditorHTML Then
Set objHTMLDoc = objInsp.HTMLEditor
Set objRange = objHTMLDoc.Selection.createRange
strText = objRange.Text
ElseIf objInsp.EditorType = olEditorRTF Then
strText = objMail.Body
ElseIf objInsp.EditorType = olEditorText Then
strText = objMail.Body
End If
Je nach Nachrichtenformat und Editortyp lesen wir hier den
markierten Text oder die komplette Nachricht aus (zur
Erinnerung: RTF und TXT im internen Editor unterstuetzt
keine Markierungen...) und legen das Ergebnis in der
Variablen "strText" ab.
If bolAnExcel Then 'Text in Excel einfuegen
Abhaengig vom eingangs gesetzten Kennzeichen fuegen wir den
Text dann in Excel oder Word ein.
Err.Clear
Set appExcel = GetObject(, "Excel.Application")
If Err <> 0 Then 'Instanz starten...
Err.Clear
Set appExcel = CreateObject("Excel.Application")
End If
If Err <> 0 Then
Beep
MsgBox "Excel konnte nicht gestartet werden!", _
vbOKOnly + vbCritical, "!!! Problem !!!"
Exit Sub
End If
Fuer die Uebertragung an Excel versuchen wir hier zunaechst
ueber "GetObject()" eine Referenz auf ein bereits laufendes
Excel zu erhalten. Ist das nicht moeglich, starten wir ueber
"CreateObject()" eine neue Instanz. Andernfalls geben wir
eine entsprechende Meldung aus und verlassen die Routine.
With appExcel
If .Workbooks.Count = 0 Then
.Workbooks.Add
End If
.Visible = True
.WindowState = xlMaximized
.Windows(0).Activate
.ActiveCell.Activate
.Selection = strText
End With
In diesem Bereich pruefen wir, ob eine Arbeitsmappe
geoeffnet ist und legen gegebenenfalls eine neue an. Die
weiteren Anweisungen machen Excel dann sichtbar und holen
das Programmfenster in den Vordergrund. Abschliessend wird
der ermittelte Text aus der Nachricht in die aktuelle
Markierung bzw. in die aktivierte Zelle der Tabelle
geschrieben.
Else 'Text in Word einfuegen
bolFound = True
Err.Clear
Set appWord = GetObject(, "Word.Application")
If Err <> 0 Then 'Instanz starten...
Err.Clear
Set appWord = CreateObject("Word.Application")
Else 'Word laeuft bereits...
If Not appWord.Visible Then 'Instanz unsichtbar...
'Pruefen, ob ein Dokument vorhanden ist
For Each objTask In appWord.Tasks
If InStr(objTask.Name, "- Microsoft Word") <> _
0 And objTask.Visible Then
objTask.Activate
SendKeys strText, True
bolFound = True
Exit For
End If
Next objTask
If bolFound Then Exit 

Sub ' Job erledigt...
Wie weiter oben bereits erlaeutert, stellt Word uns vor
einige Probleme. In diesem Bereich handhaben wir den
Umstand, dass Word eventuell als E-Mail-Editor laeuft und
pruefen die Tasks, ob parallel ein Dokument geoeffnet ist.
Wenn ja, aktivieren wir das entsprechende Fenster und
uebertragen den Text als Tastatureingabe.
'Word laeuft versteckt, kein Dokument geoeffnet
Set appWord = CreateObject("Word.Application")
End If 'Word laeuft unsichtbar?...
End If 'Word laeuft nicht...
If Err <> 0 Then
Beep
MsgBox "Word konnte nicht gestartet werden!", _
vbOKOnly + vbCritical, "!!! Problem !!!"
Exit Sub
End If
Andernfalls versuchen wir, eine einsatzbereite Instanz zu
starten. Misslingt das, wird eine entsprechende
Fehlermeldung angezeigt und die Routine verlassen.
'Word laeuft sichtbar, ggf. Dokument anlegen
If appWord.Documents.Count = 0 Then
appWord.Documents.Add          'Neues Dokument
End If
With appWord
.Visible = True
.Activate
.Selection.TypeText strText  'In aktuelles Dokument
End With
End If 'bolAnExcel...
End Sub

Hier pruefen wir zuerst, ob ein Dokument geoeffnet ist und
legen gegebenenfalls ein neues an. Die weiteren Anweisungen
machen Word dann sichtbar und holen es aktiviert in den
Vordergrund. Abschliessend wird der oben ermittelte Text aus
der Nachricht an die aktuelle Cursorposition in das Dokument
geschrieben.
Um nach dem Sichern des eingegebenen Makros den Aufruf ueber
ein Symbol im Nachrichtenfenster vornehmen zu koennen, gehen
Sie wie folgt vor:
1. Wechseln Sie mit Alt+F11 zurueck zu Outlook.
2. Oeffnen Sie eine Nachricht im Posteingang, klicken Sie
mit der rechten Maustaste auf eine Symbolleiste, waehlen
Sie das Kontextmenue ANPASSEN an und wechseln Sie im
folgenden Dialog auf die Registerkarte "Befehle".
3. Markieren Sie in der Liste KATEGORIEN den Eintrag
"Makros" und ziehen Sie "Modulname.SelWordExcel" in die
gewuenschte Symbolleiste.
4. Klicken Sie mit der rechten Maustaste auf das neue Symbol
und nehmen Sie im Eigenschaften-Menue die gewuenschten
Einstellungen vor.
5. Klicken Sie im "Anpassen"-Dialog auf die Schaltflaeche
SCHLIESSEN.
In Zukunft koennen Sie per Mausklick einen markierten Text
beziehungsweise die komplette Nachricht an Word oder Excel
uebergeben. Wenn Sie mit gedrueckter Strg-Taste auf das
Symbol klicken, erfolgt die Uebergabe an Excel, ein normaler
Klick ohne Sondertaste uebergibt den Text an Word.
************************************************************
Leider hatte leider noch keine Zeit mich weiter um VBA zu kümmern.
Ich will nämlich von Excel heraus automatisch Outlook-Mails auslesen.
Vielleicht können wir ja mal in Kontakt deswegen kommen (moksha-24@gmx.de) - würde mich freuen. Nutzt du Excel als Datenbank?
Jetzt muss ich erst mal weg vom PC. Komme in 2 Stunden noch mal wieder ran ;-)
Grüße,
Jens
Anzeige

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige