Usunięcie powielonych terminów w kalendarzu
by vbatools on Aug.12, 2010, under Outlook, Porady
Pewien forumowicz Outlook.pl miał problem po imporcie danych ze starego Outlooka 2K do 2K7. Mechanizm importujący zrealizował zadanie, jednak powielił obiekty kalendarzowe.
Zadanie jakie zostało postawione to “eliminacja obiektów przy jednoczesnym zadaniu tematu przez operatora”.
Dzięki poniższej procedurze usunięte zostaną wszystkie oprócz jednego wydarzenia, tak aby zainteresowany mógł nie stracić powielonego wpisu.
Option Explicit
Public Sub Usun_obiekty_kalendarza()
'MVP OShon from VBATools.pl
Dim OutApp As Object, temat$, q&, z&
temat = InputBox("Podaj treść tematu wydarzenia kalendarzowego do usunięcia." & _
vbCr & "Pozostanie tylko 1 wydarzenie reszta zostanie usunięte.", _
"Usuniecie obiektów kalendarza")
If Len(Trim(temat)) = 0 Then Exit Sub
Set OutApp = CreateObject("Outlook.Application")
Dim oApptFolder As MAPIFolder
Set oApptFolder = OutApp.Application.GetNamespace("MAPI").GetDefaultFolder(olFolderCalendar)
On Error GoTo blad
Dim oCalendar As AppointmentItem
Dim olApp As Items
Set olApp = oApptFolder.Items
For q = 1 To olApp.Count - 1
DoEvents
Set oCalendar = olApp.item(q)
If LCase(Trim(temat)) = LCase(Trim(oCalendar.Subject)) Then _
oCalendar.Delete: z = z + 1
Next q
MsgBox "Przerobiono " & q & " obiektów kalendarzowych." & vbCr & _
"Usunieto " & z & " obiektów z tematem: " & temat, _
vbInformation, "O'Shon machine from VBATools."
koniec:
If Not oCalendar Is Nothing Then Set oCalendar = Nothing
If Not OutApp Is Nothing Then Set OutApp = Nothing
If Not oApptFolder Is Nothing Then Set oApptFolder = Nothing
Exit Sub
blad:
MsgBox "Błąd: " & Err.Number & vbCr & Err.Description, vbExclamation
Resume koniec
End Sub
Aby uruchomić procedurę „Usun_obiekty_kalendarza” w MS Outlook, polecam uwadze ten artykuł szkoleniowy.
(c) Shon Oskar – www.VBATools.pl
Wszelkie prawa zastrzeżone. Żadna część ani całość tego artykułu nie może być powielana ani publikowana bez zgody autora.