Otázka čitateľky: Potrebovala by som poradiť, ako donútiť kalendár Outlooku k tomu, aby mi spočítal čas rozlične farebne označených úloh v rámci jednotlivých dní. Outlook používame v práci a zamestnávateľ momentálne pracuje na zlepšení prerozdelenia pracovných úloh, pričom od nás žiada časovú snímku mesiaca a roka, z ktorej by bolo jasné, koľko času venujeme napríklad na administratívnu činnosť, koľko na odbornú a podobne. Tieto záznamy tam mám farebne označené, ale nedarí sa mi nijak ich čas automaticky spočítať. Skúšala som hľadať odpoveď cez pomocníka Outlooku a takisto vyhľadávaním na internete, ale neúspešne. Je niečo také možné?
Žiaľ, vyžadujete od daného programu funkciu, pre ktorú nie je v základe určený. Na kalendár Outlooku treba nazerať ako na záznam budúcich udalostí a upomienkovač.
Ak ho chcete používať na tracking vlastných činností a stráveného času na jednotlivých úlohách, je nutné niečo také doslova naprogramovať.
Outlook to umožňuje pomocou makier. Postup je pomerne komplexnejší, avšak je možné aj „slepo“ nasledovať návod a použiť makro, ktoré už niekto naprogramoval za vás. Využiť môžete šikovný kód, ktorý naprogramoval Robert Sparnaaij. Proces vytvorenia alebo aplikácie nového makra v rámci balíku Office je nasledovný:
Otvorte program Outlook a stlačte klávesu skratku ALT+F11. Otvorí sa okno programu Visual Basic pre aplikácie, v rámci ktorého kliknite na Insert/Module. Do otvoreného okna skopírujte nasledujúci kód, pričom v prípade záujmu povoľte položku ShowMilage, pokiaľ chcete okrem času spočítavať aj vzdialenosti.
'Autorom tohto skriptu je: Robert Sparnaaij aka Roady (www.howto-outlook.com) 'Slovenská vezia TOUCHIT (for english version, use www.howto-outlook.com/howto/timespent.htm) 'Obmedzenie; Nasledovný kód nebude fungovať pre pravidelne opakujúce sa udalosti. 'Dôvodom je, že sa v kalendári vyskytujú iba jeden krát. 'Ak požadujete počítanie aj tohto času, použite pokročilejší reportovací add-on, 'ktorý nájdete na adrese: http://www.howto-outlook.com/tag/reporting Public Sub TimeSpentReport() Dim objOL As Outlook.Application Dim objSelection As Outlook.Selection Dim objItem As Object Dim Duration As Long Dim TotalWork As Long Dim Mileage As Long Dim Result As Integer Dim ShowMileage As Boolean 'Položku ShowMilage zmeňte z False na True v prípade, že chcete spočítať 'okrem času aj najazdené kilometre. ShowMileage = False Duration = 0 TotalWork = 0 Mileage = 0 On Error Resume Next Set objOL = CreateObject("Outlook.Application") Set objSelection = objOL.ActiveExplorer.Selection For Each objItem In objSelection If objItem.Class = olAppointment Then Duration = Duration + objItem.Duration Mileage = Mileage + objItem.Mileage ElseIf objItem.Class = olTask Then Duration = Duration + objItem.ActualWork TotalWork = TotalWork + objItem.TotalWork Mileage = Mileage + objItem.Mileage ElseIf objItem.Class = Outlook.olJournal Then Duration = Duration + objItem.Duration Mileage = Mileage + objItem.Mileage Else Result = MsgBox("Nebola vybratá žiadna položka kalendáru, úlohy alebo žurnálu.", vbCritical, "Strávený čas") Exit Sub End If Next 'Reportovacie správy Dim MsgBoxText As String MsgBoxText = "Celkový čas strávený na vybratej položke; " & vbNewLine & Duration & " minút" If Duration > 60 Then MsgBoxText = MsgBoxText & HoursMinsMsg(Duration) End If If TotalWork > 0 Then MsgBoxText = MsgBoxText & vbNewLine & vbNewLine & "Celkový čas práce na vybratej úlohe; " & vbNewLine & TotalWork & " minút" If TotalWork > 60 Then MsgBoxText = MsgBoxText & HoursMinsMsg(TotalWork) End If End If If ShowMileage = True Then MsgBoxText = MsgBoxText & vbNewLine & vbNewLine & "Celková vzdialenosť; " & Mileage End If Result = MsgBox(MsgBoxText, vbInformation, "Strávený čas") ExitSub: Set objItem = Nothing Set objSelection = Nothing Set objOL = Nothing End Sub Public Function HoursMinsMsg(TotalMinutes As Long) As String Dim Hours As Long Dim Minutes As Long Hours = TotalMinutes 60 Minutes = TotalMinutes Mod 60 HoursMinsMsg = " (" & Hours & " hodín a " & Minutes & " minút)" End Function
Alternatívne môžete namiesto kopírovania textu využiť formu importu. Celý tento kód si môžete stiahnuť ako súbor a ten následne v okne Visual Basicu importovať kliknutím na menu File/Import File. Nech už kód vložíte akokoľvek, následne okno zavrite a vráťte sa do hlavného okna Outlooku.
Následne sa k novej funkcii makra potrebujete dostať. Kliknite teda pravým tlačidlom myši na horný pás kariet s tlačidlami a z kontextového menu vyberte možnosť Prispôsobiť pás s nástrojmi. V pravej časti otvoreného okna zaškrtnite políčko Vývojár a kliknite na OK.
Na páse kariet si následne všimnite, že pribudla nová kategória s týmto názvom, takže sa kliknutím na ňu prepnite a v ľavom hornom rohu kliknite na tlačidlo Makrá, kde budete môcť spustiť funkciu TimeSpentReport.