Microsoft Office Outlook
uređuje Dragan Grbić

Bookmark and Share
Matična strana sajta
  Novo na sajtu
  Mapa sajta
  Beleške
  Kontakt
  Pretraga MSKB

 Blog Praktikuma
  RSS feed
  P@W @Tw

  Izvezi stranicu u PDF
 
Office Praktikum

Još o Outlooku
 


Skoro svakodnevno slušamo
  Radio Paradise:
  eklektični muzički online radio bez reklama!
 

 
       

Sponzori sajta

SBB CS 1.6 game server: 82.117.200.1
 
Connectivity by SBB

 
Suština pasijansa
Suština pasijansa
 


 

Informacije

NOVOSTI

I još dva nova priloga o Excelu
Novi prilozi o Wordu
Novi i prilozi u temi "razno o Officeu"
Novi članci o novostima u Officeu 2010!

SADRŽAJI ZA PREUZIMANJE

Lokalizacija Total Commandera 7.51Obe jezičke školjke za popularni program na srpskom sad funkcionišu u bilo kojoj varijanti Windowsa!
RNDalica.ExcelDodatak za Excel 2007/2010 za generisanje slučajnih podataka!
YuConv.ExcelDodatak za Excel 2007/2010 za konverziju pisama!
YuConvNetDodatak za Word 2007/2010 za konverziju pisama i kodnih rasporeda!

SKREĆEMO PAŽNJU

Kako pretraživati MSKB
a pronaći ćete i još mnogo novih sadržaja...

KONTAKT

Da li znate za pravila koja važe pri kontaktu sa nama? Molimo vas da se obavestite o tome!
 
POZIVAMO VAS

i prenesite svoja iskustva. Najbolji prilozi će biti objavljeni.

  (C) 2000-2010 Praktikum na Webu
 

Iz kontakta u kalendar

Nivo:  NIVO 3 - klinite za objašnjenje


Kao i uvek: treba samo malo razmišljanja i malo truda, pa se težak posao pretvori u lak...

Dragan Obrenović, moj dugogodišnji kolega u pisanju u računarskoj periodici, svojevremeno me je pitao za jedan savet o Outlooku. Kako nisam bio agilan da mu pomognem, on je sam zasukao rukave, pa rešio jedan interesantan problem primenom VBA makroa, a potom ga nesebično ponudio kao prilog za Praktikum.

Elem, kolega Obrenović je vremenom razvio veoma preciznu listu svojih kontakata, pri čemu je, kad god je imao podatak na raspolaganju, uredno popunjavao i polje o rođendanu. Vremenom, tih podataka se zateklo toliko mnogo da ih više nije mogao koristiti kako je zaista želeo - da na rođendan prijatelja ili kolege pošalje mail sa čestitkom.

Javila se sasvim normalna ideja: kako bi bilo podatak o rođendanu iskopirati iz sloga u folderu Contacts u kalendar, kao ciklični podatak koji se vezuje za datum i uredno se pojavljuje na stranici Outlook Today? Ali, bilo je lakše reći nego učiniti: objektni model Outlooka je, u najmanju ruku, složen i pomalo hermetičan.

Dakle, osim želje je bio potreban i inat (:

I kada sam gotovo već zaboravio na svoje obećanje da ću pomoći kolegi, on se javio sa rešenjem, što je ujedno prvi prilog o primeni VBA u Office Praktikumu. Evo šta kolega Obrenović piše:

...Ukratko, sabrutina protrči kroz sve kontakte, i one koji imaju podešeno polje Birthday ubacuje u kalendar, postavivši im RecurrencePattern na "Yearly". Jedino nisam znao kako da ga uglavim da se automatski izvršava - recimo, kada se nekom kontaktu promeni polje Birthday (čačkao sam nešto, ali nisam uspeo). Uglavnom, meni radi posao i ovako, a ti ako možeš još da ga poboljšaš, utoliko bolje... :)
 

Pa, nisam bio vredan da dodam tu automatizaciju - iskreno, odustao sam kada sam video na koji način se Event procedure ubacuju u Outlook, nije mi se dopalo. Ali, ne mari. Makro koji je pred vama odlično ilustruje strukture Outlooka i zavređuje svaku pažnju. Kolegi Obrenoviću se zahvaljujem na izvrsnom prilogu, a vama preporučujem da makro iskoristite kao polazište za istraživanje primene VBA u Outlooku.

Sub BirthdayRemind()
'
' Da bi funkcija ispravno radila,
' datum u regional setting mora biti podešen
' na format dd.MM.yy ili dd.MM.yyyy.
' Tačnije, dan i mesec moraju biti dvocifreni 
' zbog što jednostavnijeg "vađenja" dana i 
' meseca rođenja pomoću funkcije MID).

Set myOutlookApp = _
    CreateObject("Outlook.Application")
Set myNameSpace = _
    myOutlookApp.GetNamespace("MAPI")
Set myContacts = _
    myNameSpace.GetDefaultFolder(olFolderContacts).Items
Set myCalendar =  _
    myNameSpace.GetDefaultFolder(olFolderCalendar)
Set myContactItems = _
    myContacts.Restrict("[Birthday] <> ''")

For Each Person In myContactItems

   Datum = Person.Birthday
   BMonth = Val(Mid(Datum, 4, 2))
   BDay = Val(Mid(Datum, 1, 2))
   Subject = Person.FullName & " slavi rođendan!"

   AlreadyExists = False

   For Each calendarItem In myCalendar.Items
      If calendarItem.Subject = Subject Then
         Set myRecPat = _
             calendarItem.GetRecurrencePattern
         If (myRecPat.MonthOfYear <> BMonth) _
         Or (myRecPat.DayOfMonth <> BDay) Then
            calendarItem.Delete

         Else
            AlreadyExists = True
         End If

      End If
   Next

   If AlreadyExists = False Then
      Set NewBirthday = _
          myOutlookApp.CreateItem(olAppointmentItem)
      NewBirthday.Subject = Subject
      NewBirthday.AllDayEvent = True
      Set myRecPat = _
          NewBirthday.GetRecurrencePattern
      myRecPat.RecurrenceType = olRecursYearly
      myRecPat.MonthOfYear = BMonth
      myRecPat.DayOfMonth = BDay
      NewBirthday.Close (0)
   End If

Next

End Sub

 

  (C) 2000-2011 Praktikum na Webu

Dragan Obrenović, jun 2000.


 
 

Vrh stranice  Prethodna stranica  Naslovna strana  Mapa sajta  Pretraga

AFORIZAM ZA DANAS OVIH DANA SLUŠAMO...

Copyright © Praktikum na Webu, 2000-2011; Valinor Design; sva prava pridržana.