VBA; Programmierung
mit Outlook - Selektion
|
Zugriff auf die Selektion
Die wohl am interessanteste Funktion für alle Scripts
ist der Zugriff auf die aktuelle Selektion im Ordner,
wir können also in der Übersicht in Outlook Elemente
auswählen und damit irgendetwas anstellen, zum Beispiel:
- Ein Feld setzten
- Ausdrucken
- Die Anhänge extrahieren
- Die Mails abspeichern
- Die Elemente per E-Mail versenden
- Die Elemente verschieben oder kopieren
- Exportieren in andere Formate
- usw.
Scripts, welche mit einer Selektion arbeiten, haben
folgenden Aufbau:
shared Sub DoSomething(cat
As String)
Dim obj As Object
For Each obj In Application.ActiveExplorer.Selection
DoSomethingWith obj
Next
End Sub
Um zum Beispiel die Elemente im Debugfenster auszugeben schreiben wir
shared Sub DoSomething(cat
As String)
Dim obj As Object
For Each obj In Application.ActiveExplorer.Selection
debug.print obj.subject
Next
End Sub
Kontakte nach Excel
Das folgende Macro exportiert eine Auswahl an
Kontakten nach Excel und öffnet Excel sofort. Wir können
die Daten weiterverabeiten und dann z.B. mit Word eine
Telefonliste im Miniformat ausdrucken.
' Kopiert die ausgewählten Kontakte nach Excel
shared Sub ExportContacts()
Dim obj As ContactItem
' Statt c:\ besser ein anderes Vezeichnis
für die Datei verwenden
Open "c:\contacts.csv" For Output As #1
' Titelzeile ausgeben
Print #1, "Titel;Vorname;Nachname;Email Address;Telefon"
For Each obj In Application.ActiveExplorer.Selection
' Für jedes Feld,
welches wir exportieren wollen, eine neue Zeile, dies
kann beliebig erweitert werden
Print #1, obj.Title; ";";
print #1, obj.FirstName; ";";
print #1, obj.LastName; ";";
print #1, obj.Email1Address;";";
print #1, obj.BusinessTelephoneNumber
Next
Close #1
ShellExecute 0, "open", "c:\contacts.csv", "", "", SW_SHOW
End Sub
E-Mails vorlesen lassen
Wahrscheinlich wissen Sie gar nicht, dass Windows
auch sprechen kann. Hier der Beweis: Um das folgende Macro ausführen zu können, muss die Microsoft Speach
Object Library hinzugefügt werden, Im Code Editor:
Rechtsklick, dann Objektkatalog, dann im Objektkatalog
Rechtsklick und Verweise. Wählen Sie dann Microsoft
Speech Object Library aus.
' Die Sprachkomponenten muss global sein, damit
das Programm weiter spricht, auch wenn unser
' Sub bereits beendet ist.
Dim voice As New SpeechLib.SpVoice
' Alle E-Mails vorlesen
shared Sub ReadItForMe()
Dim obj As MailItem
voice.Rate = 1
For Each obj In Application.ActiveExplorer.Selection
voice.Speak "From: " & obj.SenderName,SpeechLib.SpeechVoiceSpeakFlags.SVSFlagsAsync
voice.Speak "Subject: " & obj.Subject, SpeechLib.SpeechVoiceSpeakFlags.SVSFlagsAsync
voice.Speak "Body: " & obj.Body,
SpeechLib.SpeechVoiceSpeakFlags.SVSFlagsAsync
Next
End Sub
Normalerweise kann Windows nur English vorlesen,
deutsche Texte hören sich ein bisschen komisch an, es
gibt aber andere Stimmen zum Download bzw. zum kaufen.
Die Konfiguration zur Sprache finden Sie in der
Systemsteuerung. Die eingebauten Stimmen hören sich
ungefähr so an, wie ein erkälteter Roboter aus einem
schlechtem Science Fiktion Film, sie können aber weitere
Stimmen installieren, zum Beispiel mit dem Microsoft
Reader (https://www.microsoft.com/reader/de/downloads/pc.asp),
dort gibt es u.a. auch Stimmen in Deutsch.
|