2010-05-20 5 views
1

J'essaye de transformer mon Outlook2003 en chose la plus proche de gmail. J'ai commencé à utiliser des catégories, qui sont assez similaires aux étiquettes dans Gmail. Je peux attribuer des catégories automatiquement avec des règles, et je peux ajouter des catégories manuellement. J'ai également créé des "dossiers de recherche", qui affichent tous les mails avec une catégorie donnée, s'ils ne se trouvent pas dans les dossiers Éléments supprimés ou Éléments envoyés. Cette partie est presque comme les vues Label dans Gmail. Deux choses manquent fondamentalement, ce qui devrait être fait avec des macros (VBA pour être précis) avec lesquelles je suis totalement inexpérimenté. Alors d'où mes questions:Comment faire pour supprimer une catégorie spécifique sur un courrier sélectionné dans Outlook 2003 avec Macro?

-Peut-on me montrer une macro pour supprimer la catégorie "Inbox"? Cela agirait exactement comme le bouton d'archivage dans gmail. En fait, je veux assigner cette macro à un bouton de la barre d'outils et l'appeler Archive. J'ai une règle qui ajoute la catégorie Boîte de réception à tous les messages entrants. Comme je l'ai dit, j'ai un dossier de recherche affichant tous les mails catégorisés comme boîte de réception, et j'ai aussi un dossier de recherche All Mail, qui affiche tous les messages, qu'ils aient ou non la catégorie Boîte de réception. Exactement comme Gmail, juste l'archivage facile est manquant. Est-ce que quelqu'un peut me montrer une macro qui supprimerait le courrier/mails sélectionné et supprimerait également la catégorie Boîte de réception avant la suppression? Je voudrais remplacer le bouton de suppression par défaut avec cette macro. (Un peu moins important, comme dans mes dossiers de recherche, je peux filtrer les messages qui sont physiquement placés dans le dossier Éléments supprimés, mais il serait plus élégant de ne pas classer les courriels dans la corbeille dans la corbeille.)

szekelya

Répondre

4

J'ai utilisé le code de suppression de Sue de http://www.outlookcode.com/codedetail.aspx?id=1211

Mais cela devrait vous travailler

Ajouté sauver! 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 
+0

Salut 76mel, merci beaucoup! C'est presque parfait. Sub UnAssignInboxCat() supprime la catégorie Inbox comme prévu, mais Outlook doit sélectionner le message suivant pour le supprimer de la vue actuelle (dossier de recherche affichant les messages avec la catégorie Boîte de réception). Pourriez-vous ajouter une commande pour sélectionner le message suivant afin que la suppression de la catégorie puisse disparaître de ce dossier de recherche? Sub DeleteAndUnAssignInboxCat() supprime le message, mais les catégories ne sont pas supprimées. Un grand merci, szekelya – szekelya

+0

Désolé, je n'ai pas ajouté le Save .. Have now – 76mel

+0

76mel, je suis sans voix. C'est génial, merci beaucoup! Mon Outlook 2003 est devenu un client de messagerie taggable moderne et productif. Merci beaucoup. szekelya – szekelya

Questions connexes