Outlook-Automatisierung mit Excel

Zu meinen aktuellen Aufgaben gehört es gelegentlich, Aufträge an den IT-Dienstleister in einem bestimmten Format zu verfassen. Nachdem ich einige Male die notwendigen Texte mühevoll zusammenkopiert hatte, kam der Wunsch nach der Automatisierung des ganzen auf. Mit ein wenig VBA Code und Google (http://www.exceltip.com/show_tip/Applications_-_Word,_Outlook_in_VBA/Control_Outlook_from_Excel_using_VBA_in_Microsoft_Excel/464.html) ist es recht einfach, die E-Mails zusammenzubauen.

Hier ein einfaches Beispiel: Aus der jeweils aktiven Zeile sollen E-Mail Adresse, Betreff und Body ausgelesen und in eine E-Mail gesetzt werden, die aktive Zeile ermittele ich dabei über currentrow = ActiveCell.Row.

Der Code, der unter dem Link verfügbar ist, benötigt eine Referenz zur Microsoft Outlook Object Library, diese lässt sich über Extras => Verweise einfügen. Wenn wir das Beispiel auf unser Szenario anpassen, erhalten wir:

Sub SendAnEmailWithOutlook()

currentrow = ActiveCell.Row

Dim OLF As Outlook.MAPIFolder, olMailItem As Outlook.MailItem
Dim ToContact As Outlook.Recipient
    Set OLF = GetObject("", _
        "Outlook.Application").GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)
    Set olMailItem = OLF.Items.Add ' erstellt neue Mail
    With olMailItem
        .Subject = Cells(currentrow, 3).Value ' Betreff
        Set ToContact = .Recipients.Add(Cells(currentrow, 2).Value) ' Empfänger
        .Body = Cells(currentrow, 4).Value ' Body
        .Save ' nur Speichern, nicht sofort senden
    End With
    Set ToContact = Nothing
    Set olMailItem = Nothing
    Set OLF = Nothing
End Sub

Uwe

Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined. Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.

More Posts - Website