Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

VB: Email suchen und öffnen

Betrifft: VB: Email suchen und öffnen von: Magda
Geschrieben am: 19.08.2004 15:12:42

Hallo,
ich möchte von VB aus gesteuert im einem OutlookOrdner (z.B. Inbox) die Emails nach einem bestimmten Kriterium (z.B. ein String in der Betreffzeile) suchen und dann diese öffnen. Evtl. auch den zugehörigen Attechment speichern.
Vielen Dank für eure Hilfe.
Gruß
Magda

  


Betrifft: AW: VB: Email suchen und öffnen von: Jens M
Geschrieben am: 19.08.2004 18:50:24

Hallo Magda!

Tja, wenn nicht einer hier dir eine fertige Lösung bietet ...

Das Thema ist kompliziert für Anfänger und da solltest du dich ruhig mal durchbeißen, das habe ich auch gemacht. Nur durch Praxis kommst du weiter. Bekommst du was Fertiges und verstehst es nicht, kannst du auch keine Änderungen einbauen. Recherchiere hier mal im Forum.

Datenauslesen will ich selbst noch (momentan keine Zeit dafür). Aber ich habe mittlerweile was gefunden, das ich mir selbst noch weiter anschauen muss. Guck mal:

Grüße,
JENS

Outlook – Mailinhalt an Excel und Word übergeben


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.


 

Beiträge aus den Excel-Beispielen zum Thema "VB: Email suchen und öffnen"