none
Access 2013 Outlook 2013 - Farbkategorien im Kalender

    Frage

  • Hallo

    Wie kann ich über VBA von Access aus Farbkategorien (Kalender) mit einer Bezeichnung und Farbzuordnung in Outlook anlegen.

    Wenn ich einen Termin über Access in Outllook anlege soll dieser je nach Kategorie eine bestimmte Farbe bekommen.

    Da der User nicht jedesmal die Farbzuordnung in Outlook per Hand reinfummel muss möchte ich dieses eben automatisieren.

    Achtung: Ich möchte die Kategoriene mit der Farbe anlegen - Die Zuordnung der Kategorie zu dem Termin bekomme ich hin

    Danke

    Freitag, 16. Januar 2015 16:40

Antworten

Alle Antworten

  • Hi,

    hier findest Du ein Beispiel inkl. VBA Code, allerdings in Outlook selbst.

      http://blogs.msdn.com/b/deva/archive/2009/06/23/outlook-object-model-creating-outlook-categories-programmatically-and-assign-colors-shortcut-keys-to-that.aspx

    Aus Access heraus müsste das wohl ähnlich gehen, Du musst dann eben Outlook automatisieren, also bspw. so:

    Dim Outlook   As Outlook.Application
    Dim NameSpace As NameSpace
    Dim Category  As Category
    
    Set Outlook   = New Outlook.Application
    Set NameSpace = Outlook.GetNamespace("MAPI")
    Set Category   = NameSpace.Categories.Add("Test", OlCategoryColor.olCategoryColorDarkBlue, OlCategoryShortcutKey.olCategoryShortcutKeyNone)
    
    Set Category  = Nothing
    Set NameSpace = Nothing
    Set Outlook   = Nothing

    Den Verweis auf die Outlook Library nicht vergessen.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community





    Freitag, 16. Januar 2015 18:56
    Moderator
  • Danke Stefan

    ich habe es jetzt so gelöst (wenn es mal jemand anderer brauchen sollten)

    Public Sub LoeschenAlleKategorienOutlook() Dim objOutl As Object 'Outlook.Application Dim objNameSpace As Object 'NameSpace Dim objCategory As Object ' Category On Error Resume Next Set objOutl = GetObject(, "Outlook.Application") If Err <> 0 Then Err = 0 Set objOutl = CreateObject("Outlook.Application") If Err <> 0 Then Beep MsgBox "Outlook kann nicht gestartet werden...", vbOKOnly + vbCritical, "!!! Problem!" Exit Sub End If End If On Error GoTo 0 Set objNameSpace = objOutl.GetNamespace("MAPI") 'Löschen aller vorhandenen Katekorien For Each objCategory In objNameSpace.Categories objNameSpace.Categories.Remove objNameSpace.Categories.Count DoEvents Next Set objNameSpace = Nothing Set objCategory = Nothing Set objOutl = Nothing End Sub

    Public Sub AnlegenKategorienOutlook() Dim objOutl As Object 'Outlook.Application Dim objNameSpace As Object 'NameSpace Dim objCategory As Object ' Category On Error Resume Next Set objOutl = GetObject(, "Outlook.Application") If Err <> 0 Then Err = 0 Set objOutl = CreateObject("Outlook.Application") If Err <> 0 Then Beep MsgBox "Outlook kann nicht gestartet werden...", vbOKOnly + vbCritical, "!!! Problem!" Exit Sub End If End If On Error GoTo 0 Set objNameSpace = objOutl.GetNamespace("MAPI") 'Erstellen der Kategorien mit Farben objNameSpace.Categories.Add "Keine", 0, 0 ' 'olCategoryColorNone DoEvents objNameSpace.Categories.Add "Wichtig", 2, 1 ' 'olCategoryColorOrange DoEvents objNameSpace.Categories.Add "Geschäftlich", 23, 2 ' 'olCategoryColorDarkBlue DoEvents objNameSpace.Categories.Add "Privat", 5, 3 ' 'olCategoryColorGreen DoEvents objNameSpace.Categories.Add "Urlaub", 11, 4 ' 'olCategoryColorSteel DoEvents objNameSpace.Categories.Add "Teilnahme erforderlich", 3, 5 ' 'olCategoryColorPeach DoEvents objNameSpace.Categories.Add "Anreise einplanen", 8, 0 ' 'olCategoryColorBlue DoEvents objNameSpace.Categories.Add "Vorbereitung notwendig", 19, 0 ' 'olCategoryColorDarkYellow DoEvents objNameSpace.Categories.Add "Geburtstag", 10, 0 ' 'olCategoryColorMaroon DoEvents objNameSpace.Categories.Add "Jahrestag", 3, 0 ' 'olCategoryColorTeal DoEvents objNameSpace.Categories.Add "Telefonanruf", 4, 0 ' 'olCategoryColorYellow Set objNameSpace = Nothing Set objCategory = Nothing Set objOutl = Nothing End Sub

    So brauche ich kein Verweis auf Outlook

    das DoEvents benötigt er wohl weil sonst war bei mir sauberes löschen und anlegen nicht möglich


    • Bearbeitet MCDPone Sonntag, 18. Januar 2015 11:20 unübersichtlich
    Sonntag, 18. Januar 2015 11:19