Good to Know Database

Microsoft Outlook 2007: Vorhandensein des Anhanges vor dem Absenden prüfen


Sicherlich kennen Sie das Problem, dass Sie sich in einer E-Mail auf ein angehängtes Dokument beziehen aber vor dem Absenden vergessen die Datei anzuhängen. Das folgende Visual Basic Makro erweitert  Microsoft Outlook 2007 um eine entsprechende Prüfung. Dabei wird die Nachricht nach Schlüsselwörtern (siehe Phrases) durchsucht und wenn eines gefunden wurde, wird überprüft ob auch eine Datei angehängt wurde. Sollte dies nicht der Fall sein, wird eine Meldung angezeigt, durch welche Sie die E-Mail nochmals bearbeiten oder ohne Anhang versenden können.

Nachdem Sie Microsoft Outlook 2007 gestartet haben, öffnen Sie mit der Tastenkombination Alt+F11 den Visual Basic Editor. Öffnen Sie jetzt im linken oberen Fenster Projekt1, Microsoft Office Outlook Objekte und anschließend ThisOutlookSession.

Vorhandensein des Anhanges vor dem Absenden prüfen 1

Jetzt kopieren Sie den folgenden Visual Basic Code in das Code-Fenster.

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
  If Item.Class = olMail Then
    Cancel = CheckAttachment(Item)
  End If
End Sub

Private Function CheckAttachment(oMail As Outlook.MailItem) As Boolean
  Dim Result As Boolean
  Dim HasAttachments As Boolean
  Dim strMsg As String

  Result = False
  If NeedsAttachment(oMail.Body) Then
    HasAttachments = True
    If TypeName(oMail.Attachments) = "Nothing" Then
      HasAttachments = False
    End If
    If oMail.Attachments.Count = 0 Then
      HasAttachments = False
    End If
    If Not HasAttachments Then
      strMsg = "Ihre Nachricht hat keinen Anhang." & vbCrLf & "Nachricht ohne Anhang versenden?"
      'strMsg = "Your message has no attachment." & vbCrLf & "Send message without attachment?"
      Result = (MsgBox(strMsg, vbYesNo + vbQuestion, "Kein Anhang") = vbNo)
      'Result = (MsgBox(strMsg, vbYesNo + vbQuestion, "No attachment") = vbNo)
    End If
  End If
  CheckAttachment = Result
End Function

Private Function NeedsAttachment(ByVal text As String) As Boolean
  Dim Phrases As Variant
  Dim MailBody As String
  Dim Result As Boolean
  Dim i As Integer, j As Integer
  
  Phrases = Array("anhang", "anlage", "anhängend", "angehängt", "angefügt", _
                  "beigefügt", "anbei", "attached", "attachment")
  
  MailBody = LCase(text)
  Result = False
  j = UBound(Phrases)
  For i = 0 To j
    If InStr(MailBody, Phrases(i)) <> 0 Then
      Result = True
      Exit For
    End If
  Next
  NeedsAttachment = Result
End Function

Damit das Makro ausgeführt werden kann, müssen Sie entweder den Makrosicherheitslevel heruntersetzen oder das Makro mit einem eigenen Zertifikat signieren. Zum Signieren des Makros lesen Sie bitte die Anleitung Microsoft Outlook 2007: Visual Basic Makro signieren.

Nachdem Sie das Makro signiert haben, schließen Sie den Visual Basic Editor. Wenn Sie jetzt Microsoft Outlook 2007 beenden, müssen Sie das Visual Basic Projekt noch abspeichern.

Vorhandensein des Anhanges vor dem Absenden prüfen 2

Sollten Sie jetzt versuchen eine E-Mail mit einem der Schlüsselwörter im Text und ohne Anhang zu versenden, wird Ihnen die folgende Meldung angezeigt und Sie können entscheiden ob die E-Mail ohne Anhang versendet werden soll oder ob Sie diese nochmals bearbeiten wollen.

Vorhandensein des Anhanges vor dem Absenden prüfen 3


Dieser Eintrag wurde am 03.03.2012 erstellt und zuletzt am 24.01.2016 bearbeitet.

Direkter Link zu dieser Seite: http://www.gtkdb.de/index_21_1510.html

[ Zur Startseite ]   [ Zur Kategorie ]


Valid XHTML 1.0 Transitional Valid CSS Valid Atom 1.0

© 2004-2018 by Georg Kainzbauer