2012-05-23 3 views
0

Quelqu'un au travail m'a demandé si je pouvais mettre en place un système facile pour lui d'envoyer des messages-mails Outlook en fonction de quelques paramètres qu'il pouvait entrer.Utilisation du carnet d'adresses dans Outlook VBA

Un exemple serait un message comme celui-ci:

"Hello, 

Please be informed that system **Parameter1** is current down. 

Regards," 

Je pensais à faire un formulaire dans Outlook VBA qui examinerait dynamiquement le nombre de fois une chaîne de style comme un paramètre (par exemple @@[email protected]@) était trouvé dans un certain modèle et ensuite créer une zone d'édition dans le formulaire pour chaque paramètre trouvé.

Le problème est que je voudrais évidemment ajouter une boîte pour les destinataires. Je devrais trouver un moyen de faire l'appel du carnet d'adresses Outlook et le faire se comporter comme un. C'était moins intuitif que ce que j'avais espéré. Jusqu'à présent, je n'ai réussi à faire ce qui suit:

Dim snd As Outlook.SelectNamesDialog 
Dim displayLL As Boolean 

Set snd = Application.Session.GetSelectNamesDialog() 
snd.NumberOfRecipientSelectors = Outlook.OlRecipientSelectors.olShowTo 
snd.AllowMultipleSelection = True 
displayLL = snd.display() 

Comme vous pouvez le voir, ce qui ouvre seulement le Carnet d'adresses et me permet de sélectionner un quelques adresses. Mais je suis perplexe sur la façon dont je peux réellement faire des champs qui vont effectivement agir comme les champs "To:" et "CC:" dans un courrier Outlook régulier.

+0

Je pense que la raison pour laquelle il n'y a pas de réponse à cette question est que vous semblez être impliqué dans une implémentation particulière. Pourriez-vous s'il vous plaît indiquer clairement quel est le but de votre collègue? De cette façon, quelqu'un pourrait suggérer une méthode qui pourrait être plus facile ou plus appropriée. – JimmyPena

+0

@JP Le but ici était simplement de pouvoir enregistrer des modèles pour les mails qui seraient envoyés très fréquemment (jusqu'à plusieurs fois par jour). Il a demandé à créer un système pour qu'il puisse définir des paramètres dans le modèle de courrier de sorte qu'un petit programme VBA soit facilement capable de le parcourir et de remplacer les valeurs des paramètres par les valeurs qu'il a spécifiées. De cette façon, il n'aurait pas à faire face à des manigances constantes de 'Control-C' - 'Control-V' à chaque fois. Comme vous l'avez dit, j'étais trop concentré sur une seule implémentation. J'ai finalement utilisé une solution beaucoup plus simple mais moins sophistiquée, que j'explique ci-dessous. – RobinM

+0

Merci pour votre retour. On dirait que vous avez trouvé une solution satisfaisante. – JimmyPena

Répondre

0

Je ne sais pas à quel point c'est pertinent, étant donné que j'ai finalement pris une route différente, mais je pensais que je voudrais encore ajouter cela puisque personne n'a répondu.

J'ai simplement créé un formulaire qui répertorierait tous les modèles en effectuant une recherche dans le dossier des modèles dans% AppData%. Je ferais alors une boucle dans tout le courrier en cherchant des chaînes de style de paramètre et demanderais la valeur désirée chaque fois que je rencontrerais une telle chaîne (par une boîte d'entrée simple). Au lieu d'ajouter une boîte personnalisée "destinataires", j'ai simplement ouvert un nouveau mail avec les paramètres remplis correctement. L'utilisateur pourrait alors simplement ajouter des destinataires au courrier comme il le ferait d'habitude, et il était d'accord avec cela. De cette façon, il était aussi capable de vérifier si le courrier ressemblait vraiment à ce qu'il voulait.

Rien d'extraordinaire ou quelque chose qu'un enfant de 7 ans ne serait pas capable de faire, mais cela fonctionne.