Benutzer mit den meisten Antworten
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
Antworten
-
Hi,
hier findest Du ein Beispiel inkl. VBA Code, allerdings in Outlook selbst.
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
- Bearbeitet Stefan FalzModerator Freitag, 16. Januar 2015 19:08
- Als Antwort markiert MCDPone Sonntag, 18. Januar 2015 11:16
Alle Antworten
-
Hi,
hier findest Du ein Beispiel inkl. VBA Code, allerdings in Outlook selbst.
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
- Bearbeitet Stefan FalzModerator Freitag, 16. Januar 2015 19:08
- Als Antwort markiert MCDPone Sonntag, 18. Januar 2015 11:16
-
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