Pokud využíváte kalendář v aplikaci Outlook pro plánování práce, či zpětně jako svůj výkaz, tak právě zobrazení celkového času vybraných položek (Time spent) je funkce, bez které se nelze jednoduše obejít.
A jak to tak bývá, nic není zadarmo a i v tomto případě bude nutné si tuto funkci vložit manuálně pomocí makra a následně přidat do pásu karet jako vlastní akci.
Time Spent – jak funguje?
Jak už bylo řečeno jde o makro funkci, kterou je nutné manuálně spustit ve formě vlastní akce a ikonky v pásu karet.
Stačí tedy v rámci kalendáře označit libovolný počet položek kalendáře (je nutné při označování držet levý Ctrl) a následně v pásu karet spustit vlastní akci pomocí tlačítka „Time Spent“. Jakmile bude makro dokončeno, zobrazí se pop-up okno s informací o celkovém součtu času vybraných položek viz:
Time Spent – implementace makra?
- Spusťte aplikaci Outlook
- Pomocí klávesové zkratky Alt + F11 otevře okno „Microsoft Visual Basic for Applications„
- Do části „ThisOutlookSession“ zkopírujte makro:
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 Result As Integer Duration = 0 TotalWork = 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 ElseIf objItem.Class = olTask Then Duration = Duration + objItem.ActualWork TotalWork = TotalWork + objItem.TotalWork ElseIf objItem.Class = Outlook.olJournal Then Duration = Duration + objItem.Duration Else Result = MsgBox("Nic jsi nevybral!", vbCritical, "Time Spent") Exit Sub End If Next Dim MsgBoxText As String MsgBoxText = "Celkový čas strávený na vybraných úkolech: " & vbNewLine & Duration & " minut" If Duration > 60 Then MsgBoxText = MsgBoxText & HoursMinsMsg(Duration) End If If TotalWork > 0 Then MsgBoxText = MsgBoxText & vbNewLine & vbNewLine & "Celkový čas zaznamenaný pro vybraný Task: " & vbNewLine & TotalWork & " minut" If TotalWork > 60 Then MsgBoxText = MsgBoxText & HoursMinsMsg(TotalWork) End If End If Result = MsgBox(MsgBoxText, vbInformation, "Time Spent") 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 & "h " & Minutes & "m)" End Function
Děkuji Jirkovi Hrochovi za úpravu makra dle mých požadavků :-).
- Pomocí ikonky „Disketa„, nebo položek menu File a Save projekt uložte
- Pokud máte makro uložené je možné celé okno „Microsoft Visual Basic for Applications“ zavřít
Time Spent – přidání akce do pásu karet
- Kdekoliv na pásu karet pravým tlačítkem myši otevřete nabídku a vyberete „Přizpůsobit pás karet..„
- V levém dialogovém okně „Zvolit příkazy z:“ vyberte Makra
- V pravém dialogovém okně „Přizpůsobit pás karet:“ vyberte Hlavní karty
- Rozbalte nabídku „Domů (kalendář)„
- Pomocí pravým tlačítkem myši nad nabídkou „Domů (kalendář)“ vytvořte novou skupinu pomocí „Přidat novou skupinu“
- Novou skupinu přejmenujte na „Vlastní akce“ pomocí pravého tlačítka myši a volbou „Přejmenovat“
- Přidejte makro „Project1.ThisOutlookSession.TimeSpent“ do skupiny „Vlastní akce“ pomocí tlačítka „Přidat >>„
- Makro přejmenujte na „Time Spent“ pomocí pravého tlačítka myši a volbou „Přejmenovat
- Nabídku ukončete tlačítkem „OK“
Time Spent – nastavení potřebného oprávnění
- V rámci pásu karet se přepněte do záložky „Soubor“ a následně „Možnosti“ otevřete nastavení „Možnosti aplikace Outlook„
- Přepněte se do záložky „Centrum zabezpečení“ a pomocí tlačítka „Nastavení Centra zabezpečení…“ otevřete nastavení „Centrum zabezpečení„
- V části „Nastavení maker“ vyberte volbu „Povolit všechna makra“ (s rizikem potencionálního spuštění nebezpečného kódu), nebo „Zobrazit oznámení pro všechna makra“ (bude vyžadovat schválení při každém spuštění funkce Time Spent)
Komentáře