Note: The other languages of the website are Google-translated. Back to English
Accedi  \/ 
x
or
x
Registrati  \/ 
x

or

Come contare le ore / i giorni / le settimane trascorse su un appuntamento o una riunione in Outlook?

Supponiamo che ci siano molti appuntamenti e riunioni in un calendario in Outlook. E ora vuoi contare le ore / i giorni / le settimane trascorse in questi appuntamenti e riunioni, qualche idea? Questo articolo introdurrà un VBA per aiutarti.

Contare ore / giorni / settimane trascorse su un appuntamento o un incontro con VBA


Contare ore / giorni / settimane trascorse su un appuntamento o un incontro con VBA

Questo metodo introdurrà un VBA per contare le ore oi minuti spesi per l'appuntamento o la riunione specificati in Outlook. Si prega di fare quanto segue:

1. Passare alla cartella Calendario e fare clic per selezionare l'appuntamento o la riunione di cui verranno conteggiate le ore trascorse.

2. Stampa altro + F11 tasti contemporaneamente per aprire la finestra di Microsoft Visual Basic, Applications Edition.

3. Clic inserire > Modulo, quindi incolla sotto il codice VBA nella finestra del modulo di apertura.

VBA: conta ore / minuti trascorsi su un appuntamento o una riunione in Outlook

Sub CountTimeSpent()
Dim oOLApp As Outlook.Application
Dim oSelection As Outlook.Selection
Dim oItem As Object
Dim iDuration As Long
Dim iTotalWork As Long
Dim iMileage As Long
Dim iResult As Integer
Dim bShowiMileage As Boolean

bShowiMileage = False

iDuration = 0
iTotalWork = 0
iMileage = 0

On Error Resume Next

    Set oOLApp = CreateObject("Outlook.Application")
Set oSelection = oOLApp.ActiveExplorer.Selection

    For Each oItem In oSelection
If oItem.Class = olAppointment Then
iDuration = iDuration + oItem.Duration
iMileage = iMileage + oItem.Mileage
ElseIf oItem.Class = olTask Then
iDuration = iDuration + oItem.ActualWork
iTotalWork = iTotalWork + oItem.TotalWork
iMileage = iMileage + oItem.Mileage
ElseIf oItem.Class = Outlook.olJournal Then
iDuration = iDuration + oItem.Duration
iMileage = iMileage + oItem.Mileage
Else
iResult = MsgBox("Please select some Calendar, Task or Journal items at first!", vbCritical, "Items Time Spent")
Exit Sub
End If
Next

Dim MsgBoxText As String
MsgBoxText = "Total time spent: " & vbNewLine & iDuration & " minutes"

If iDuration > 60 Then
MsgBoxText = MsgBoxText & HoursMsg(iDuration)
End If

If iTotalWork > 0 Then
MsgBoxText = MsgBoxText & vbNewLine & vbNewLine & "Total work recorded; " & vbNewLine & iTotalWork & " minutes"

If iTotalWork > 60 Then
MsgBoxText = MsgBoxText & HoursMsg(iTotalWork)
End If
End If

If bShowiMileage = True Then
MsgBoxText = MsgBoxText & vbNewLine & vbNewLine & "Total iMileage; " & iMileage
End If

    iResult = MsgBox(MsgBoxText, vbInformation, "Items Time spent")

ExitSub:
Set oItem = Nothing
Set oSelection = Nothing
Set oOLApp = Nothing
End Sub

Function HoursMsg(TotalMinutes As Long) As String
Dim iHours As Long
Dim iMinutes As Long
iHours = TotalMinutes \ 60
iMinutes = TotalMinutes Mod 60
HoursMsg = " (" & iHours & " Hours and " & iMinutes & " Minutes)"
End Function

4. premi il F5 o fare clic su Correre pulsante per eseguire questo VBA.

E ora viene visualizzata una finestra di dialogo che mostra quante ore / minuti ha trascorso l'appuntamento / riunione selezionato. Vedi screenshot:

Note:: È possibile selezionare più appuntamenti o riunioni contemporaneamente per contare le ore / i minuti totali trascorsi su di essi con questo codice VBA.


Articoli Correlati


Kutools for Outlook: porta 100 funzionalità avanzate in Outlook e semplifica notevolmente il lavoro!

  • Auto CC / BCC dalle regole durante l'invio di e-mail; Avanzamento automatico Email multiple personalizzate; Risposta automatica senza server di scambio e più funzioni automatiche ...
  • Avviso BCC - mostra il messaggio quando provi a rispondere a tutti se il tuo indirizzo e-mail è nell'elenco BCC; Ricorda quando mancano allegatie altre funzioni di promemoria ...
  • Rispondi (tutti) con tutti gli allegati nella conversazione di posta; Rispondi a molte email in secondi; Aggiunta automatica di saluto quando rispondi; Aggiungi la data all'oggetto ...
  • Strumenti per gli allegati: gestisci tutti gli allegati in tutti i messaggi, Scollegamento automatico, Comprimi tutto, Rinomina tutto, Salva tutto ... Rapporto rapido, Conta le email selezionate...
  • E-mail spazzatura potenti per abitudine; Rimuovi messaggi e contatti duplicati... Consentono di fare in modo più intelligente, veloce e migliore in Outlook.
girato kutools outlook scheda kutools 1180x121
girato kutools outlook kutools plus tab 1180x121
 
Say something here...
symbols left.
You are guest
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    John Burggraaf · 1 years ago
    What a very helpful macro! Thank you!
  • To post as a guest, your comment is unpublished.
    Nate · 3 years ago
    how do you count total time for all meetings on a calendar over a period. We are trying to figure out how much our different staff members are spending in meetings in total.
    • To post as a guest, your comment is unpublished.
      John Burggraaf · 1 years ago
      You need to change the calendar view to a list view that shows all of the appointments together, and then you can highlight all of those that you're interested in totaling, and run that VBA macro.
    • To post as a guest, your comment is unpublished.
      camla · 2 years ago
      Did you get a response on this or figured it out ? Im trying to do the same.
      • To post as a guest, your comment is unpublished.
        Krishna Mohan · 1 years ago
        I shifted to month mode and selected all invites using drag and drop, able to see the sum of all meetings. hope it helps.
  • To post as a guest, your comment is unpublished.
    Christian · 4 years ago
    Thanks for a very useful macro!

    I just found one error: oItem.Mileage is a String not a Long. This error caused the macro to got blocked.