:::: MENU ::::

Time Spent – Vlastní akce pro součet času položek v kalendáři

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.

Outlook - Vlastní akce

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:

Outlook - Kalendář - celkový čas (Time Spent)

Time Spent – implementace makra?

  1. Spusťte aplikaci Outlook
  2. Pomocí klávesové zkratky Alt + F11 otevře okno „Microsoft Visual Basic for Applications
  3. 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ů :-).

  4. Pomocí ikonky „Disketa„, nebo položek menu FileSave projekt uložte
  5. Pokud máte makro uložené je možné celé okno „Microsoft Visual Basic for Applications“ zavřít
    Outlook - Vložení makra

Time Spent – přidání akce do pásu karet

  1. Kdekoliv na pásu karet pravým tlačítkem myši otevřete nabídku a vyberete „Přizpůsobit pás karet..
  2. V levém dialogovém okně „Zvolit příkazy z:“ vyberte Makra
  3. V pravém dialogovém okně „Přizpůsobit pás karet:“ vyberte Hlavní karty
  4. Rozbalte nabídku „Domů (kalendář)
  5. Pomocí pravým tlačítkem myši nad nabídkou „Domů (kalendář)“ vytvořte novou skupinu pomocí „Přidat novou skupinu“
  6. Novou skupinu přejmenujte na „Vlastní akce“ pomocí pravého tlačítka myši a volbou „Přejmenovat“
  7. Přidejte makro „Project1.ThisOutlookSession.TimeSpent“ do skupiny „Vlastní akce“ pomocí tlačítka „Přidat >>
  8. Makro přejmenujte na „Time Spent“ pomocí pravého tlačítka myši a volbou „Přejmenovat
  9. Nabídku ukončete tlačítkem „OK
    Outlook - Přidání akce do pásu karet

Time Spent – nastavení potřebného oprávnění

  1. 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
  2. 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í
  3. 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)
    Outlook - Povolení makra

Komentáře