Datum vor den Betreff einer E-Mail einfügen

Zuletzt geändert am 01. März 2013

Mit diesem Code können Sie per Mausklick das aktuelle Datum oder das Empfangsdatum vor den Betreff einer E-Mail oder eines anderen Outlook®-Elements anfügen.

Zur Verwendung dieses Beispiels beachten Sie bitte die wichtigen Hinweise, sowie den Workshop VBA in Outlook® verwenden. Den Code bitte in ein neues Modul kopieren (Einfügen -> Modul im VBA-Editor).

Ab Outlook® 2000

Option Explicit
 
Public Sub InsertDate()
 
    '=====================================================================
    ' Fügt an den Anfang des Betreffs der markierten Elemente das Datum ein.
    ' (c) Peter Marchert - http://www.outlook-stuff.com
    ' 2008-11-09 - Version 1.0.0
    ' 2008-11-21 - Version 1.0.1
    ' 2010-11-17 - Version 1.1.0
    ' 2013-03-01 - Version 2.0.0
    '=====================================================================
    
    Dim objSelection As Outlook.Selection ' Alle ausgewählten Elemente
    Dim objItem As Object                 ' Aktuell geöffnetes Element
    
    '---------------------------------------------------------------------
    ' Fehlerbehandlung wegen Set-Anweisungen ausschalten
    '---------------------------------------------------------------------
    On Error Resume Next
 
    '---------------------------------------------------------------------
    ' Aktuell geöffnetes Element refernzieren
    '---------------------------------------------------------------------
    Set objItem = Outlook.ActiveInspector.CurrentItem
 
    '---------------------------------------------------------------------
    ' Wenn kein Element geöffnet ist, dann markierte Elemente verwenden
    '---------------------------------------------------------------------
    If objItem Is Nothing Then
 
        '-----------------------------------------------------------------
        ' Aktuelle Auswahl ermitteln
        '-----------------------------------------------------------------
        Set objSelection = Outlook.ActiveExplorer.Selection
 
        '-----------------------------------------------------------------
        ' Auch nichts markiert?
        '-----------------------------------------------------------------
        If objSelection.Count = 0 Then GoTo ExitProc
 
        '-----------------------------------------------------------------
        ' Markierte Elemente bearbeiten
        '-----------------------------------------------------------------
        For Each objItem In objSelection
 
            '-------------------------------------------------------------
            ' Datum einfügen
            '-------------------------------------------------------------
            Call AddDate(objItem)
 
        Next
 
    Else
 
        '-----------------------------------------------------------------
        ' Datum einfügen
        '-----------------------------------------------------------------
        Call AddDate(objItem)
 
    End If
 
ExitProc:
 
    '---------------------------------------------------------------------
    ' Referenz auf Objekte löschen
    '---------------------------------------------------------------------
    Set objItem = Nothing
    Set objSelection = Nothing
 
End Sub
 
Private Sub AddDate(ByVal objItem As Object)
 
    '=====================================================================
    ' Fügt an den Anfang des Betreffs eines Elements das Datum ein.
    ' (c) Peter Marchert - http://www.outlook-stuff.com
    ' 2013-03-01 - Version 1.0.0
    '=====================================================================
    
    Dim strDate As String     ' Datum
    Dim blnDate As Boolean    ' Aktuelles Datum oder Empfangsdatum verwenden
    Dim blnReplace As Boolean ' Eventuell vorhandenes Datum ersetzen
    
    '---------------------------------------------------------------------
    ' Fehlerbehandlung ReceivedTime ausschalten
    '---------------------------------------------------------------------
    On Error Resume Next
 
    '---------------------------------------------------------------------
    ' Soll das aktuelle Datum verwendet werden?
    ' True = Aktuelles Datum verwenden
    ' False = Empfangsdatum verwenden
    '---------------------------------------------------------------------
    blnDate = True
 
    '---------------------------------------------------------------------
    ' Vorhandenes Datum ersetzen?
    ' True = Ja
    ' False = Nein
    '---------------------------------------------------------------------
    blnReplace = False
 
    '---------------------------------------------------------------------
    ' Mit dem Formatbefehl wird das Datum maschinell sortierbar
    '---------------------------------------------------------------------
    If blnDate Then
        strDate = Format(Date, "yyyy-MM-dd")
    Else
        strDate = Format(objItem.ReceivedTime, "yyyy-MM-dd")
    End If
 
    '---------------------------------------------------------------------
    ' Datum schon vorhanden?
    '---------------------------------------------------------------------
    If IsDate(Left(objItem.Subject, Len(strDate))) Then
        If blnReplace Then
            objItem.Subject = strDate & " " & Mid(objItem.Subject, Len(strDate) + 2)
        End If
    Else
        objItem.Subject = strDate & " " & objItem.Subject
    End If
 
    '---------------------------------------------------------------------
    ' Änderung speichern
    '---------------------------------------------------------------------
    If Not objItem.Saved Then objItem.Save
 
    '---------------------------------------------------------------------
    ' Referenz auf Element löschen
    '---------------------------------------------------------------------
    Set objItem = Nothing
 
End Sub