Microsoft Office. Outlook Add-in und Add-on Software.

 

 

 

 

 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.