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 Outlook – Impostazioni 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 File – Opzioni – Personalizzazione 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.

Informatics, ski racer, loves travels, Finland, Norway, mountains, squash, photography, Drones and RC Helicopter



RSS - Articoli
Buongiorno Andrea, ho eseguito le sue preziose istruzioni, la prima volta ha funzionato tutto correttamente, ritornando per rivedere i risultati, mi dice che le macro del progetto sono disattivate. Dal pannello di controllo ho attivato tutte le macro, ma continua a non funzionare. Può aiutarmi alla risoluzione? Grazie.