VBOffice

Unterhaltungen zusammenführen

Dieses Script zeigt, wie verschiedene Emails zu einer Unterhaltung zusammengefaßt werden können.

Zuletzt geändert: 27.10.2016 | Aufrufe: 42.892  | #107
◀ Vorheriges Beispiel Nächstes Beispiel ▶
OLKeeper OLKeeper
Der OLKeeper verhindert zuverlässig, dass Sie Microsoft Outlook unbeabsichtigt schließen und so etwa wichtige Emails verpassen würden.

Wenn Sie die Ordneransicht nach Unterhaltung gruppieren, dann sehen Sie im Idealfall alle E-Mails einer Unterhaltung zusammengefaßt zu einer Gruppe, wobei eine Antwort auf eine vorherige E-Mail eingerückt angezeigt wird. Damit Outlook das so sortieren kann, wird nicht der Betreff verwendet, sondern die Felder ConversationTopic und ConversationIndex. Darum funktioniert es auch nicht, einfach den Betreff einer E-Mail zu ändern, um diese in eine andere Unterhaltung zu bringen.

Outlook bzw. Exchange sind schon nicht besonders gut darin, den Index immer korrekt zu vergeben, so dass die Einrückung häufig nicht funktioniert. Wenn nun noch der Absender eine neue Email erstellt, statt auf Ihre zu Antworten, dann bringt das die Gruppierung zusammengehörender Nachrichten komplett durcheinander.

Dieses Script zeigt, wie Sie die Gruppierung nachträglich korrigieren können. Kopieren Sie den Code im VBA-Editor in das Modul DieseOutlookSitzung. Außerdem müssen Sie die Redemption installieren. (Die Developer-Version ist kostenlos für den privaten Gebrauch.)

Beim Ändern der Unterhaltung bekommt die geänderte Nachricht automatisch auch den gleichen Betreff. Über die Variable KeepOriginalSubject=True wird gesteuert, dass stattdessen der Originalbetreff erhalten bleibt. Wenn Sie das nicht wollen, setzen Sie den Wert der Variable auf False.

Zur Verwendung: Öffnen Sie eine Email, und wählen Sie im Ordner alle anderen Emails aus, die zur gleichen Unterhaltung gehören sollen. Starten Sie dann das Script über alt+f8. (Am besten testen Sie das einmal mit ein paar Emails und schauen sich das Ergebnis im Ordner mit der Ansicht gruppiert nach Unterhaltung an.)


tip  So fügen Sie Makros in Outlook ein
Private m_Session As Object

Public Sub MergeConversation()
  Dim Sel As Outlook.Selection
  Dim obj As Object
  Dim Parent As Redemption.RDOMail
  Dim Mail As Redemption.RDOMail
  Dim i As Long
  Dim KeepOriginalSubject As Boolean
  Dim Subject As String
  
  KeepOriginalSubject = True

  Set m_Session = CreateObject("redemption.rdosession")
  m_Session.MAPIOBJECT = Application.Session.MAPIOBJECT

  Set obj = Application.ActiveInspector.CurrentItem
  Set Parent = GetRdoMessage(obj)

  Set Sel = Application.ActiveExplorer.Selection
  For i = 1 To Sel.Count
    Set obj = Sel(i)
    Set Mail = GetRdoMessage(obj)
    Subject = Mail.Subject
    Mail.CreateConversationIndex Parent
    If KeepOriginalSubject Then
      Mail.Subject = Subject
    End If
    Mail.Save
  Next
End Sub

Private Function GetRdoMessage(Item As Object) As Redemption.RDOMail
  Dim e$, s$

  If Not Item Is Nothing Then
    e = Item.EntryID
    If Not Item.Parent Is Nothing Then
      s = Item.Parent.StoreID
    End If
    If Len(e) Then
      If Len(s) Then
        Set GetRdoMessage = m_Session.GetMessageFromID(e, s)
      Else
        Set GetRdoMessage = m_Session.GetMessageFromID(e)
      End If
    End If
  End If
End Function
Reporter Reporter
Mit dem Reporter erstellen Sie Berichte für Ihre Outlook Daten. Mit wenigen Klicks werden Werte aus Aufgaben, Terminen und dem Journal summiert.
email  Senden Sie eine Nachricht