lionheart
Goto Top

VBS - Outlook Kalendereinträge nach Kategorie löschen

Hallo Leute!

Wir verwenden in Outlook 2003 für bestimmte Kalendereinträge die eigendefinierte Kategorie "Kundentermin".

Nun benötige ich ein VBScript, welches mir aus meinem Outlook alle Kalendereinträge mit dieser Kategorie entfernt.

Ich habe bereits auf der MSDN Homepage gesucht, aber nichts wirklich passendes gefunden. Wie kann ich die Kategorie abfragen und die Einträge löschen?

Vielen Dank für eure Hilfe.

Gruß,
Lionheart

Content-ID: 117481

Url: https://administrator.de/forum/vbs-outlook-kalendereintraege-nach-kategorie-loeschen-117481.html

Ausgedruckt am: 23.12.2024 um 01:12 Uhr

flipworld12
flipworld12 04.06.2009 um 15:23:09 Uhr
Goto Top
Versuch es mal mit VBA, ich denke damit geht's einfacher...
Lionheart
Lionheart 05.06.2009 um 09:17:48 Uhr
Goto Top
Hi!

Warum VBA? Ich darf auf Grund von Firmenrichtlinien leider nur mit VBScripten arbeiten. Der Sinn sei einemal dahingestellt, aber ich muss mich danach richten.
flipworld12
flipworld12 05.06.2009 um 15:24:51 Uhr
Goto Top
hmm... Ich glaube nicht, dass MICROSOFT es vorsieht, dass man mit VBS auf Outlook zugreifen kann. Du könntest mit dem Skript vllt. die Outlook-Datendatei verändern. Oder du suchst nochmal unter Google(oder auch bing face-wink nach "outlookzugriff mit vbs" oder so ähnlich. Vielleicht findest du ja eine DLL oder so...
MonoTone
MonoTone 08.06.2009 um 09:47:10 Uhr
Goto Top
Also man kann mit VBS sehr wohl auf Outlook zugreifen.
On Error Resume Next
Set myOlApp = GetObject(,"Outlook.Application")  

If Not myOlApp = "Outlook" Then  
Set myOlApp = CreateObject("Outlook.Application")  
End If
On Error goto 0
With myOlApp
Set olMAPI = .GetNameSpace("MAPI").GetdefaultFolder(9)  

WScript.Echo olMAPI.Items.count
For Each teil In olMAPI.Items
With teil
Alles = .Subject & ";" & .Location & ";" _  
          & .Categories & ";" & .Start & ";" & .End & ";" & .AllDayEvent & ";" _  
          & .Duration & ";" & .ReminderMinutesBeforeStart & ";" & .LastModificationTime & ";"  
WScript.Echo Alles
End With
Next
End With
so könnte man sich die Anzahl der Termine und die eigenschaften der einzelnen Kalendereinträge anzeigen lassen.
ergo schreib ich es eben so wie gebraucht um, mom
MonoTone
MonoTone 08.06.2009 um 10:47:56 Uhr
Goto Top
On Error Resume Next
Set myOlApp = GetObject(,"Outlook.Application")  

If Not myOlApp = "Outlook" Then  
Set myOlApp = CreateObject("Outlook.Application")  
End If
On Error goto 0
With myOlApp
Set olMAPI = .GetNameSpace("MAPI").GetdefaultFolder(9)  
a=1
For Each teil In olMAPI.Items 
With teil 
If .categories = "Kundentermin" Then   
del = del & "," & a  
End If 
a=a+1
End With 
Next 

itemdel=Split(del,",",-1,1)  
End With
a = UBound(itemdel)
Do While a>0
olMAPI.Items.remove itemdel(a)
a=a-1
Loop
so sollte es gehen
Lionheart
Lionheart 08.06.2009 um 11:40:57 Uhr
Goto Top
@MonoTone
Vielen Dank für das Skript. Funktioniert einwandfrei. Klasse!!!
MonoTone
MonoTone 08.06.2009 um 12:26:08 Uhr
Goto Top
Bei mir gabs ein Problem wenn die Termine neu sind, ich hab es nochmal überarbeitet, so geht es bei mir jetzt einwandfrei auch bie vielen neuen Terminen

gruss Mono