Outlook 2010 – Makro für „Senden als XYZ“

Um mir VBA ein wenig näherzubringen und im Betrieb sowieso dabei bin Exchange und Outlook 2010 einzurichten, habe ich eine Aufgabenstellung per Makro gelöst. Einige Mails werden von den Mitarbeitern unter anderem Namen/Absender versendet. Die mir bekannte Lösung war, eine E-Mail zu konfigurieren und diese, als Vorlage abgespeichert, auf das Outlook-Zeichen in der Taskleiste zu ziehen. Der Haken daran war aber, dass sich das „Von:“-Feld immer auf die eigene Mailadresse zurückgesetzt hatte.

Nun zum Makro …

Als Vorbereitung muss lediglich eine Mail konfiguriert und als Entwurf abgespeichert werden. Dabei ist die Betreffzeile die Schnittstelle zu folgendem Makro:

' makes a copy of a draft and opens it as new mail
Private Function GetTemplate(Items As Outlook.Items, TplName As String) As Outlook.MailItem
  On Error Resume Next
  Dim Mail As Outlook.MailItem

  Set Mail = Items.Find("[subject]=" & Chr(34) & TplName & Chr(34))

  If Not Mail Is Nothing Then
    Set GetTemplate = Mail.Copy
  End If
End Function

Sub SendAsXYZ()
  Dim Ns As Outlook.NameSpace
  Dim Folder As Outlook.MAPIFolder
  Dim TplName As String
  Dim Mail As Outlook.MailItem

  Set Ns = Application.GetNamespace("MAPI")
  Set Folder = Ns.GetDefaultFolder(olFolderDrafts)

  ' MUST BE SET to the name of the draft
  TplName = "Send as XYZ"

  Set Mail = GetTemplate(Folder.Items, TplName)
  If Not Mail Is Nothing Then
    Mail.Display
  End If
End Sub

Die Variable TplName muss identisch mit der Betreffzeile des Entwurfs sein.

That’s it! 🙂

Wenn du Verbesserungsvorschläge hast (bin Newby auf dem Gebiet Office-Makros), so lasse es mich per Kommentar wissen!

Share

Kommentar verfassen