Immaginiamo, in Microsoft Outlook, di aver bisogno di contare il numero totale di email presenti in una cartella e relative sottocartelle di un account di posta elettronica.

Per fare questo abbiamo bisogno di creare una macro, aiutandoci con il codice di Visual Basic riportato sotto; vediamo passo passo come procedere.

Dovendo lavorare in ambiente VBA apriamo la relativa finestra.

In Outlook 2007
Bottone di Office – Pulsante Opzioni di OutlookImpostazioni generali – Opzione Mostra scheda Sviluppo sulla barra multifunzione
A questo punto ritornando nella finestra di Outlook verrà visualizzata anche la Scheda Sviluppo nella quale troviamo il pulsante Visual Basic

In Outlook 2010/2013/2016
Scheda FileOpzioniPersonalizzazione barra multifunzione – Selezionare Sviluppo nella sezione Schede principali
A questo punto ritornando nella finestra di Outlook verrà visualizzata anche la Scheda Sviluppo nella quale troviamo il pulsante Visual Basic

Apriamo la finestra di Visual Basic cliccando sul relativo pulsante e inseriamo un nuovo modulo (menù Inserisci – Modulo); a questo punto copiamo il codice riportato qui sotto e incolliamolo nel nuovo modulo appena aperto:

Sub CountItems()
    Dim objMainFolder As Outlook.Folder
    Dim lItemsCount As Long
 
    'Select a folder
    Set objMainFolder = Outlook.Application.Session.PickFolder
 
    If objMainFolder Is Nothing Then
       MsgBox "You choose select a valid folder!", vbExclamation + vbOKOnly, "Warning for Pick Folder"
    Else
       'Initialize the total count
       lItemsCount = 0
       Call LoopFolders(objMainFolder, lItemsCount)
    End If
 
    'Display a message for the total count
    MsgBox "There are " & lItemsCount & " items in the " & objMainFolder.Name & " folder Including its subfolders.", vbInformation, "Count Items"
End Sub

Sub LoopFolders(ByVal objCurrentFolder As Outlook.Folder, lCurrentItemsCount As Long)
    Dim objSubfolder As Outlook.Folder
 
    lCurrentItemsCount = lCurrentItemsCount + objCurrentFolder.Items.Count
 
    'Process all folders and subfolders recursively
    If objCurrentFolder.Folders.Count Then
       For Each objSubfolder In objCurrentFolder.Folders
           Call LoopFolders(objSubfolder, lCurrentItemsCount)
       Next
    End If
End Sub

Possiamo quindi chiudere la finestra di Visual Basic e tornare nella schermata principale di Outlook.

In questo modo abbiamo creato la macro che ci servirà per contare le email che ci interessano; per avviare la macro dovremo selezionare sul pulsante macro presente nella scheda Sviluppo e quindi cliccare su CountItems

Si aprirà una finestra di dialogo contenente tutti gli account presenti; per contare tutte le email dovremo selezionare direttamente il nome dell’account, altrimenti la cartella principale che contiene gli elementi che vogliamo contare.

Cliccando su OK verranno contati tutti gli email presenti nella cartella selezionata e relative sottocartelle.

 

Far volare un drone in Russia: leggi e regolamenti
Translate »