Come rimuovere una categoria specifica su una posta selezionato in Outlook 2003 con Macro?
-
03-10-2019 - |
Domanda
Sto cercando di trasformare il mio Outlook2003 nella cosa più vicina a Gmail.
ho iniziato a categorie d'uso, che sono abbastanza simili a etichette in Gmail. Posso assegnare categorie automaticamente con le regole, e posso aggiungere le categorie manualmente. Ho creato anche "cartelle di ricerca", che mostrano tutte le email con una determinata categoria, se non sono in Posta eliminata o Posta inviata. Questa parte è quasi come il punto di vista di etichette in Gmail.
Due cose che mancano in sostanza, che dovrebbe essere fatto con le macro (VBA per la precisione) che io sono totalmente inesperto con. Quindi, da qui le mie domande:
-Può qualcuno spettacolo mi una macro per rimuovere la categoria "Posta in arrivo"? Che avrebbe agito esattamente come il pulsante Archivia in Gmail. In realtà io voglio assegnare la macro a un pulsante di barra degli strumenti e lo chiamo Archive. Ho una regola che aggiunge la categoria Posta in arrivo per tutta la posta in arrivo. Come ho detto, ho una ricerca cartella di visualizzazione di tutte le mail classificate come Posta in arrivo, e ho anche una cartella di ricerca Tutti i messaggi, che visualizza tutti i messaggi, indipendentemente se hanno la categoria Posta in arrivo. Esattamente come gmail, solo l'archiviazione facile manca.
-Può qualcuno spettacolo mi una macro che elimina la posta / mail selezionate e anche eliminerebbe la categoria Posta in arrivo prima di eliminazione? Vorrei sostituire il pulsante di default di cancellazione con questa macro. (Un po 'meno importanti, come nei miei cartelle di ricerca sono in grado di filtrare i messaggi che sono fisicamente collocati in cartella Posta eliminata, ma sarebbe più elegante non avere elettronica classificati come posta in arrivo nella spazzatura.
Grazie in anticipo,
szekelya
Soluzione
Ho usato il codice di rimozione di Sue da http://www.outlookcode.com/codedetail aspx? id = 1211
Ma questo dovrebbe funzionare voi
Aggiunto risparmia! Doh!
Sub UnAssignInboxCat()
Dim SelectedItems As Selection
Dim Item As MailItem
Set SelectedItems = Application.ActiveExplorer.Selection
For Each Item In SelectedItems
RemoveCat Item, "Inbox"
Item.Save
Next
Set SelectedItems = Nothing
Set Item = Nothing
End Sub
Sub DeleteAndUnAssignInboxCat()
Dim SelectedItems As Selection
Dim Item As MailItem
Set SelectedItems = Application.ActiveExplorer.Selection
For i = SelectedItems.Count To 1 Step -1
Set Item = SelectedItems.Item(i)
RemoveCat Item, "Inbox"
Item.Save
Item.Delete
Next
Set SelectedItems = Nothing
Set Item = Nothing
End Sub
Sub RemoveCat(itm, catName)
arr = Split(itm.Categories, ",")
If UBound(arr) >= 0 Then
' item has categories
For i = 0 To UBound(arr)
If Trim(arr(i)) = catName Then
' category already exists on item
' remove it
arr(i) = ""
'rebuild category list from array
itm.Categories = Join(arr, ",")
Exit Sub
End If
Next
End If
End Sub