Outlook 2007 VBA - applique une action uniquement en compte des perspectives spécifiques

StackOverflow https://stackoverflow.com/questions/9344617

  •  27-10-2019
  •  | 
  •  

Question

J'utilise le projet VBA suivant pour appliquer une chaîne par défaut au début du champ Objet avec tous les nouveaux e-mails. MAIS - Je ne veux que ce script à la fonction lorsque Outlook a été ouverte sur un compte spécifique (c.-à-je 2 fichiers comptes utilisateur Outlook / PST - personnels et d'affaires - et seulement veulent la chaîne sujet ajouté aux e-mails quand je travaille dans le compte d'entreprise) Je croise les doigts - merci pour votre aide. Kirk

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
If MsgBox("Send with 'Myrtleford Festival" at start of subject?", vbYesNo, "Send as Festival mail") = vbYes Then
        If (Left(Trim(Item.Subject), 11)) <> "The " Then
    Item.Subject = "The Myrtleford Festival 2012/ " + Item.Subject
    End If
End If

End Sub

Était-ce utile?

La solution 2

OK, refroidir. En fait, je suis tombé sur une solution tout à fait à toute épreuve et élégante. Dans Trust Center Outlook> Sécurité des macros, je choisi l'option « pour mettre en garde toutes les macros ». Maintenant, quand j'ouvrir Outlook à l'un de mes profils, je reçois une demande pop-up si je veux activer / désactiver les macros. Depuis le script VBA est la seule macro course, je peux facilement filtrer si la chaîne sujet par défaut est utilisé. Qui fonctionnera à 100% du temps pour toujours (car je ne vois aucune raison pour laquelle je serai jamais en utilisant une autre macro / script VBA)

Autres conseils

Ceci est la base d'une approche.

Il est parfois depuis que je l'ai eu plusieurs comptes, mais, quand je l'ai fait, les dossiers de niveau supérieur étaient très différents. Le code ci-dessous des sorties à la fenêtre immédiate les noms des dossiers de niveau supérieur. cela donnerait sur mon système actuel:

Personal Folders
Archive Folders
Test Folders

Si vos deux comptes ont des dossiers de niveau supérieur, vous pouvez distinguer vos comptes de cela.

Si vous aimez cette approche, mais les dossiers de niveau supérieur sont les mêmes, j'ai une routine qui recherche un dossier spécifique à toute profondeur dans la hiérarchie. Même si les principaux dossiers sont les mêmes, je suppose que certains des sous-dossiers sont différents.

Sub AnswerA()

  Dim InxIFLCrnt As Integer
  Dim TopLvlFolderList As Folders

  Set TopLvlFolderList = _
          CreateObject("Outlook.Application").GetNamespace("MAPI").Folders

  For InxIFLCrnt = 1 To TopLvlFolderList.Count
    Debug.Print TopLvlFolderList(InxIFLCrnt).Name
  Next

End Sub
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top