VBOffice

Emails zum gleichen Thema suchen

Per VBA mit einem Klick alle Emails zum gleichen Thema suchen.

Zuletzt geändert: 26.01.2017 | Aufrufe: 39.846  | #153
◀ Vorheriges Beispiel Nächstes Beispiel ▶

Inhalt

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.

Suche nach Betreff

Über Rechtsklick auf eine Email, 'Alle Suchen' können Sie Emails vom gleichen Absender oder zum gleichen Thema suchen. Dieses Beispiel zeigt, wie Sie das mit VBA selber bauen können. Unter 'ViewName' können Sie einen beliebigen Namen für die Ansicht vergeben.


tip  So fügen Sie Makros in Outlook ein
Public Sub SubjectFilter()
  Dim Folder As Outlook.MAPIFolder
  Dim obj As Object
  Dim Mail As Outlook.MailItem
  Dim View As Outlook.View
  Dim Find As String, DASL As String
  Dim Filter As String
  Dim ViewName As String
  Dim Created As Boolean
  
  'Name Ihrer benutzerdefinierten Ansicht
  ViewName = "Mein-Filter"
  
  Set obj = Application.ActiveExplorer.Selection(1)
  
  If Not TypeOf obj Is Outlook.MailItem Then
    'Dieses Beispiel ist nur für Emails
    Exit Sub
  End If
  
  Set Mail = obj
  Set Folder = Mail.Parent
  
  '[Feld] = [Eigenschaft]
  Filter = "#0 = '#1'"
  
  'DASL-Name der zu suchenden Eigenschaft
  DASL = "http://schemas.microsoft.com/mapi/proptag/0x0037001F"
  
  'Zu suchender Wert
  Find = Mail.Subject
  
  'Ansicht finden bzw. erstellen
  Set View = Folder.CurrentView
  If LCase$(View.Name) <> LCase$(ViewName) Then
    Set View = Folder.Views(ViewName)
    If View Is Nothing Then
      Set View = Folder.Views.Add(ViewName, olTableView, olViewSaveOptionAllFoldersOfType)
      Created = True
    End If
  End If
  
  'Filter setzen
  DASL = Chr(34) & DASL & Chr(34)
  Filter = Replace(Filter, "#0", DASL)
  Filter = "(" & Filter & ")"
  Filter = Replace(Filter, "#1", Find)
  
  View.Filter = Filter
  View.Apply
  If Created Then View.Save
End Sub
SAM SAM
Legen Sie fest, mit welcher "Identität" Ihre Emails beim Empfänger erscheinen sollen. Mit SAM bestimmen Sie den Absender und Speicherort für Emails anhand von Regeln.

Suche nach einem Teilbegriff

Dieses Beispiel macht fast das gleiche, aber statt nach dem Betreff der ausgewählten Email zu suchen, wird nach einem Teilbegriff gesucht, den Sie eingeben.

Public Sub SubjectFilter2()
  Dim Folder As Outlook.MAPIFolder
  Dim View As Outlook.View
  Dim Find As String, Dasl As String
  Dim Filter As String
  Dim ViewName As String
  Dim Created As Boolean
  
  'Name der benutzerdefinierten Ansicht
  ViewName = "Mein-Filter"
  
  Set Folder = Application.ActiveExplorer.CurrentFolder
  
  '[Feld] = [Eigenschaft]
  Filter = "#0 like '%#1%'"
  
  'DASL-Name der zu suchenden Eigenschaft
  Dasl = "http://schemas.microsoft.com/mapi/proptag/0x0037001F"
  
  'Zu suchender Wert
  Find = InputBox("Suche:")
  
  'Ansicht finden bzw. erstellen
  Set View = Folder.CurrentView
  If LCase$(View.Name) <> LCase$(ViewName) Then
    Set View = Folder.Views(ViewName)
    If View Is Nothing Then
      Set View = Folder.Views.Add(ViewName, olTableView, olViewSaveOptionAllFoldersOfType)
      Created = True
    End If
  End If
  
  'Filter setzen
  Dasl = Chr(34) & Dasl & Chr(34)
  Filter = Replace(Filter, "#0", Dasl)
  Filter = "(" & Filter & ")"
  Filter = Replace(Filter, "#1", Find)
  
  View.Filter = Filter
  View.Apply
  If Created Then View.Save
End Sub
OLKeeper OLKeeper
Der OLKeeper verhindert zuverlässig, dass Sie Microsoft Outlook unbeabsichtigt schließen und so etwa wichtige Emails verpassen würden.

Filter löschen

Und so können Sie schnell den aktuellen Filter wieder löschen:

Public Sub RemoveFilter()
  Dim Folder As Outlook.MAPIFolder
  Dim View As Outlook.View
  
  Set Folder = Application.ActiveExplorer.CurrentFolder
  Set View = Folder.CurrentView
  View.Filter = ""
  View.Apply
End Sub
SAM SAM
Legen Sie fest, mit welcher "Identität" Ihre Emails beim Empfänger erscheinen sollen. Mit SAM bestimmen Sie den Absender und Speicherort für Emails anhand von Regeln.
email  Senden Sie eine Nachricht