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
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.