Ricerca…


introduzione

Prima parte di un'introduzione ai negozi e alle cartelle che contengono. Contiene macro per visualizzare (1) i nomi dei negozi accessibili e (2) i nomi dei negozi accessibili e le cartelle di livello superiore al loro interno.

2.1 Conoscenza pregressa prevista

  • Sei un utente di Outlook e comprendi termini come "email", "tempo di ricezione", "oggetto" e "Riquadro delle cartelle".
  • Sai come accedere a Visual Basic Editor di Outlook e creare un modulo. Vedi Introduzione Parte 1 se necessario.
  • Hai almeno una conoscenza di base di VBA. Dichiaro Subroutine e variabili senza spiegazione. Uso Withs, Ifs e Loops senza spiegazione. Ti dico che qualcosa è una collezione. Ti dico di copiare il codice su un modulo ed eseguirlo. Esistono molti tutorial online, anche se la maggior parte sono per Excel VBA e si concentrano maggiormente sull'uso della lingua con Excel rispetto alla lingua. La ricerca di "tutorial VBA" fa apparire alcuni che si concentrano sulla lingua più dell'applicazione che sembrano soddisfacenti.
  • Non è necessario conoscere il modello a oggetti di Outlook; questo tutorial ti presenta una piccola parte di esso.

2.2 Negozi

Outlook memorizza le e-mail, gli elementi del calendario, le note, le attività e così via in file noti come Negozi . Se guardi il tuo pannello delle cartelle vedrai qualcosa come:

Aaaaaaaaaa
  Inbox
  Drafts
  Deleted Items
  :  :

Bbbbbbbbbb
  Inbox
  Drafts
  Deleted Items
  :  :

Cccccccccc
:  :

"Aaaaaaaaaa", "Bbbbbbbbbb" e "Cccccccccc" sono i nomi utente o di visualizzazione dei Negozi. Ho sempre accettato le impostazioni predefinite di Outlook per questi nomi che sono cambiati nel corso degli anni. Una volta che il default era il mio nome ora è il mio indirizzo email. Il nome file per questi negozi potrebbe essere lo stesso ma con un'estensione come PST o OST o potrebbe essere qualcosa di completamente diverso. Una macro VBA richiede il nome utente per accedere a un negozio e non riguarda i nomi dei file o l'estensione.

Puoi avere quanti negozi desideri. Ho "Outlook data file" che è stato creato per me quando ho installato Outlook. Quando ho aggiunto account per i miei indirizzi email, Outlook ha creato nuovi negozi denominati per l'indirizzo di posta elettronica come "[email protected]" e "[email protected]". Per ridurre le dimensioni del mio negozio principale, salvo vecchie email nei negozi con nomi come "Archivio 2015".

Se sei un utente aziendale, puoi avere accesso a negozi condivisi o ai negozi di colleghi.

Le macro sottostanti mostrano tre diversi modi di elencare i negozi a cui è possibile accedere. Ti suggerisco di creare un nuovo modulo per contenere il codice sottostante e di utilizzare F4 per accedere alle proprietà del modulo in modo da poterlo chiamare "ModIntro" o un altro nome di tua scelta. Se hai completato la parte 1 di questa serie, avrai già questo modulo.

Copia queste macro in un modulo e verifica che ciascuna fornisca lo stesso risultato.

Sub ListStores1()

  Dim InxStoreCrnt As Integer
  Dim NS As NameSpace
  Dim StoresColl As Folders

  Set NS = CreateObject("Outlook.Application").GetNamespace("MAPI")
  Set StoresColl = NS.Folders

  For InxStoreCrnt = 1 To StoresColl.Count
    Debug.Print StoresColl(InxStoreCrnt).Name
  Next

End Sub
Sub ListStores2()
 
 Dim StoresColl As Stores
 Dim StoreCrnt As Store
 
 Set StoresColl = Session.Stores
 
 For Each StoreCrnt In StoresColl
   Debug.Print StoreCrnt.DisplayName
 Next
 
End Sub
Sub ListStores3()

  Dim InxStoreCrnt As Long

  With Application.Session
    For InxStoreCrnt = 1 To .Folders.Count
      Debug.Print .Folders(InxStoreCrnt).Name
    Next
  End With

End Sub

Troverete con VBA che ci sono spesso diversi metodi per ottenere lo stesso effetto. Sopra ho mostrato tre metodi per accedere ai negozi. Non è necessario ricordarli tutti - scegli il tuo preferito - ma devi essere consapevole del fatto che ci sono diversi metodi perché altre persone, di cui potresti aver bisogno di studiare il codice, avranno diversi preferiti.

Le variabili StoresColl nelle macro ListStores1() e ListStores2() sono entrambe raccolte ma contengono diversi tipi di oggetto: Store e Folder . Un oggetto Store può solo fare riferimento a un file sul disco. Una Folder può fare riferimento a un file su disco ma può anche fare riferimento a cartelle all'interno di un archivio come "Posta in arrivo" e "Posta inviata". Stores , Folders , Store e Folder fanno tutti parte del modello a oggetti di Outlook. Questa serie di tutorial ti introduce al modello ma non è una definizione formale. Se vuoi una definizione formale, digita "outlook vba object model" nel tuo motore di ricerca preferito. Assicurati di guardare la versione VBA del modello.

2.3 Cartelle di primo livello

Nell'esempio del riquadro Cartelle sopra riportato, elenco solo tre cartelle standard: "Posta in arrivo", "Bozze" e "Elementi eliminati". Esistono altre cartelle standard e puoi creare tutte le cartelle che desideri. Alcune persone creano cartelle in Posta in arrivo ma preferisco creare nuove cartelle allo stesso livello di Inbox. Le tue cartelle possono avere sotto-cartelle che possono avere le loro sottocartelle a qualsiasi profondità.

La seguente macro produrrà un elenco del modulo:

A
   A1
   A2
   A3
B
   B1
   B2
C
   C1
   C2
   C3
   C4

dove A, B e C sono negozi e A1, B1, C1 e così via sono cartelle all'interno di A, B e C. Se A1, B1, C1 e così via hanno sottocartelle, non saranno elencate da questa macro. L'accesso a cartelle più nidificate sarà trattato nella prossima parte di questo tutorial.

Sub ListStoresAndTopLevelFolders()

  Dim FldrCrnt As Folder
  Dim InxFldrCrnt As Long
  Dim InxStoreCrnt As Long
  Dim StoreCrnt As Folder

  With Application.Session
    For InxStoreCrnt = 1 To .Folders.Count
      Set StoreCrnt = .Folders(InxStoreCrnt)
      With StoreCrnt
        Debug.Print .Name
        For InxFldrCrnt = .Folders.Count To 1 Step -1
          Set FldrCrnt = .Folders(InxFldrCrnt)
          With FldrCrnt
            Debug.Print "   " & .Name
          End With
        Next
      End With
    Next
  End With

End Sub

2.4 Cosa dovresti ricordare da questo tutorial

  • Un negozio è un file in cui Outlook memorizza le e-mail, gli elementi del calendario, le note, le attività e così via.
  • Un archivio può contenere cartelle standard di Outlook come "Posta in arrivo" e "Posta inviata".
  • Un negozio può contenere anche cartelle create dall'utente.
  • Entrambe le cartelle standard di Outlook e le cartelle create dall'utente possono contenere sottocartelle create dall'utente, sottocartelle secondarie e così via a qualsiasi profondità.
  • Come elencare i negozi.
  • Come elencare i negozi e le cartelle di livello superiore all'interno di tali negozi.

Confessione: non ricordo nessuno dei "come". Ho subroutine e funzioni che ricordano per me.



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow