- Startseite
- Neuigkeiten
- Über mich
- Referenzen
- Beispiele
- Artikel
- Vorträge
- Tools
- Access-Tipps
- Excel-Tipps
- Spielereien
- Kontakt
- Impressum
- Datenschutz
Meine Projekte:


Outlook mit VBA-Makros erweitern
Ich verschicke häufiger Screenshots per Outlook. Damit diese sich – gerade bei einem Ausschnitt ohne Rand – vom Hintergrund abheben, versehe ich sie nach dem Einfügen in Outlook mit einem Schatten und/oder Rahmen. Dazu brauche ich dann jedes Mal ein Dutzend Klicks im Seitenmenü 'Grafik formatieren'. Das muss doch auch schneller gehen?!
Ein Makro in Outlook aufzeichnen geht nicht und im Objektmodell habe ich auch nichts Passendes gefunden. Durch Zufall stieß ich in Michael Bauers VBOffice.net auf ein Beispiel, wie man Word-Makro in Outlook nutzen kann (https://www.vboffice.net/de/developers/word-makro-in-outlook-nutzen
). Da Word für formatierte Mails im Hintergrund als Editor verwendet wird, sollte man somit in Outlook auch (fast) alles machen können, was man in Word auch tun kann.
Obwohl sich die gewünschte Bildbearbeitung auch in Word nicht als Makro aufzeichnen ließ, habe ich mir mit Google, dem Objektexplorer und dem Direktbereich alle notwendigen Befehle und Parameter zusammengesucht und getestet. Als in Word alles wie gewünscht funktionierte, habe ich die Funktionen nach Outlook übertragen.
Dort habe ich die Outlook-VBE (per Alt + F11) geöffnet und den Verweis auf die vorhandene Microsoft Word Object Library gesetzt, um die Word-Befehle mit Early-Binding und die dort definierten Konstanten verwenden zu können. Dann habe ich mir ein neues Modul und eine neue Prozedur angelegt. In diese habe ich den Modulkopf und den Inhalt des Word-Makros kopiert. Jetzt nur noch das Menüband angepasst und das Makro hinterlegt – et voilà: täglich ein paar Mausklicks gespart.
PS: Achten sie auf die Makroeinstellungen in Outlook. Beim ersten Erstellen von Makros wird dieses problemlos ausgeführt. Nach dem nächsten Start von Outlook ziehen dann aber die Optionen im TrustCenter, die standardmäßig keine Makros zulassen.
Code
Und so sieht eines meiner Outlook-Format-Makros aus:
Sub sBildSchatten() ' Schatten hinter alle gewählten Bilder legen Dim Ins As Outlook.Inspector Dim Document As Word.Document Dim Word As Word.Application Dim Selection As Word.Selection Dim img As InlineShape Dim i As Integer Set Ins = Application.ActiveInspector Set Document = Ins.WordEditor Set Word = Document.Application Set Selection = Word.Selection For i = 1 To Selection.InlineShapes.Count Set img = Selection.InlineShapes(i) With img ' Schatten .Shadow.Blur = 100 .Shadow.ForeColor = 0 .Shadow.OffsetX = 10 .Shadow.OffsetY = 10 .Shadow.Type = 21 .Shadow.Transparency = 0.5 .Shadow.Size = 100 End With Next i End Sub