Publikoval Michal Kočí dňa 31.12.2004 o 00:48 v kategórii Office
Pár dní dozadu som písal príspevok, poukazujúci na článok, ako do aplikácie Microsoft Outlook dostať štátne sviatky. V diskusii sa človek pod prezývkou FX dotazoval, či niekto nevie, ako do Outlooku dostať meniny...
Pôvodne som chcel odpísať, že neviem, ale že sa to pravdepodobne nejak bude dať. Veď do Outlooku sa dajú importovať stretnutia, tak prečo by nešli naimportovať meniny (pri malej abstrakcii: jeden deň menín = jeden appointment). Áno, takto to musí ísť. Navyše, svojho času som programoval aplikáciu Kalendár, takže mám aj zoznam dátumov a k nim prislúchajúcich mien...
Nápad vygenerovať súbor menín sa mi pozdával čím ďalej tým viac... Takže jediné čo som potreboval bol popis formátu, ktorým sa dajú appointmenty do Outlooku importovať - VCS. No a keď som našiel RFC 2445, nechýbalo mi už prakticky nič. Jedine, napísať si konzolovú aplikáciu, ktorá v cykle prebehne všetky dni roka, nájde ku dňu prislúchajúce meniny a takto vygeneruje jeden veľký VCS súbor.
No a tak som aj učinil. Keďže mám práve skúškové obdobie, nechcelo sa mi čítať celé RFC, takže som sa ani nedohľadal informácie, ako vygenerovať udalosť tak, aby sa opakovala každý rok. Takže som vygeneroval len súbory s meninami na rok 2005, zatiaľ to musí stačiť.
Vygeneroval som teda 2 súbory, jeden s meninami pre Slovensko a jeden pre Čechy. Stiahnuť si ich môžete tu (pravý klik na súbor, Save File AS...):
Doplnok z 31.12.2004: Súbory som zmenil, lebo som zistil, že sa vygenerovala udalosť aj pre dni, v ktorých nik meniny nemá (napr. 1.1.). Nie že by to nejak vadilo, ale je to takto podľa mňa lepšie.
Doplnok z 4.1.2005: Ako som zistil, po importe súboru sa jednak položky netvária ako All Day Event a druhak voľba Show Time As je nastavené na Busy. Aj keď som robil rôzne pokusy s exportom a importom, nepodarilo sa mi pripraviť súbor, ktorý by tieto dva nešváry odstránil - respektíve, pripraviť sa mi ho podarilo, ale Outlook ho nechápal. Takže som nakoniec musel pristúpiť k tomu, že na naimportované meniny som poštval makro, ktoré nastaví položke All Day Event na True a Show Time As na Free. Makro prikladám:
Sub ZmenitMeniny() Dim nsThis As NameSpace Dim fldrSelected As MAPIFolder Dim appCurrent As Outlook.AppointmentItem Set nsThis = Application.GetNamespace("MAPI") Set fldrSelected = nsThis.GetDefaultFolder(olFolderCalendar) For Each appCurrent In fldrSelected.Items Select Case appCurrent.Categories Case "Meniny SR", "Meniny ČR" appCurrent.AllDayEvent = True appCurrent.BusyStatus = olFree appCurrent.Save End Select Next MsgBox "Done." End SubDoplnok z 3.1.2007: Na základe jednoduchej rady (nie je nad jednoduchost) od užívateľa MJ (radu viď v komentároch) som pripravil meniny aj pre rok 2007 a stiahnuť si ich môžete tu:
Malá, ale dôležitá poznámka. Súbor musíte do Outlooku importovať takto:
Prečo tu však rozoberám tento postup? Ak by ste chceli importovať tento súbor dvojklikom naň v prieskumníkovi, Outlook by Vám ponúkol import iba prvej položky zo súboru...
Aby ste si vedeli predstaviť, ako to asi po importe vyzerá, prikladám screenshot po importe oboch súborov pri mesačnom a týďennom pohľade na kalendár. Ak si budete importovať iba jeden súbor, proste si zo screenshotu odmyslite jeden druh menín :)
Ak nechceš premeškať príspevky ako je tento, sleduj ma na Twitteri, alebo ak máš RSS čítačku, môžeš sledovať môj RSS kanál.