Développement de solutions avec Microsoft Outlook 2002

Paul Cornell et Acey Bunch
Microsoft Corporation

S'applique à :
     Microsoft® Outlook® 2002

Résumé : cet article explique comment développer des solutions Microsoft Outlook 2002 en utilisant la bibliothèque d'objets Microsoft Outlook 10.0 et en créant des formulaires personnalisés.

Sommaire

Introduction
Exploration du modèle d'objet Outlook
Exploration des formulaires Outlook
Distribution des solutions Outlook
Conclusion
Autres ressources

Introduction

Il existe plusieurs approches possibles pour développer des solutions avec Microsoft® Outlook. Toutefois, un des points essentiels, quelle que soit l'approche adoptée, est l'utilisation de la bibliothèque d'objets Microsoft Outlook 10.0, également connue sous le nom de modèle d'objet Outlook. Lorsque vous utilisez le modèle d'objet Outlook, vous utilisez Visual Basic® Editor dans Outlook et le langage de programmation Visual Basic for Applications (VBA).

Une des approches consiste à développer des formulaires Outlook interactifs. Dans ce cas, vous utilisez le Générateur des formulaires d'Outlook, le modèle d'objet Outlook Forms et le langage de programmation Visual Basic Scripting Edition (VBScript) (il est impossible de concevoir ou d'utiliser Outlook Forms en dehors d'Outlook).

Une autre approche consiste à utiliser le modèle d'objet Outlook à travers d'autres outils de développement d'applications COM (Component Object Model) tels que Microsoft Visual Basic ou Microsoft Visual C++® en définissant une référence à la bibliothèque d'objets Microsoft Outlook 9.0 (pour Microsoft Outlook 2000) ou Microsoft 10.0 (pour Microsoft Outlook 2002).

En outre, vous pouvez appeler la fonctionnalité du modèle d'objet Outlook via les pages Web, au moyen de VBScript. Vous pouvez adapter le code proposé ici à un de ces différents scénarios. Si des différences importantes apparaissent, nous fournirons des exemples de code en conséquence afin d'illustrer l'utilisation aussi bien de VBA que de VBScript.

Exploration du modèle d'objet Outlook

Le modèle d'objet Outlook permet d'accéder, par programmation, à divers composants et fonctionnalités d'Outlook telles que l'interface utilisateur Outlook, les dossiers, les messages électroniques, les listes d'adresses et les contacts. Dans Outlook 2002, le modèle d'objet s'appelle Bibliothèque d'objets Microsoft Outlook 10.0.

Pour visualiser les différents éléments du modèle d'objet Outlook, démarrez Outlook et affichez Visual Basic Editor en cliquant sur le menu Outils, en pointant sur Macro puis en choisissant Visual Basic Editor ; vous pouvez aussi appuyer simplement sur ALT+F11. Lorsque Visual Basic Editor s'affiche, utilisez l'Explorateur d'objets pour parcourir le modèle d'objet Outlook en cliquant sur le menu Affichage puis sur Explorateur d'objets, ou en appuyant sur F2. Dans l'Explorateur d'objets, la liste Projet/bibliothèque permet de sélectionner un modèle particulier à afficher. Dans le cas présent, nous allons afficher le modèle d'objet Outlook tel que le montre la figure 1.

Figure 1.
Figure 1. Modèle d'objet Outlook tel qu'il s'affiche dans l'Explorateur d'objets

Lorsque vous sélectionnez des membres dans le volet Classes, les membres associés à la classe en question s'affichent dans le volet Membres. Vous constatez que lorsque vous sélectionnez un membre du modèle d'objet dans les volets Classes ou Membres, il est possible d'afficher la rubrique d'aide de référence du langage VB Outlook pour ce membre.

En cas de programmation avec le modèle d'objet Outlook, il y a certains objets que vous utiliserez fréquemment :

  • Application
    Il s'agit de l'objet racine qui permet d'accéder au reste du modèle d'objet. Lorsque vous utilisez VBA dans Outlook, l'objet Application est implicitement déclaré de sorte que vous pouvez choisir d'utiliser ou non le mot clé Application.
  • NameSpace
    Cet objet sert pour stocker des éléments tels que des dossiers. " MAPI " est le seul espace de nom que vous pouvez utiliser.
  • Item
    Cet objet contient un élément particulier de données Outlook tel qu'un message électronique, un rendez-vous ou un contact.
  • Folder
    Cet objet sert de conteneur de stockage par défaut pour les éléments Outlook.
  • Explorer
    Cet objet sert d'interface par défaut pour l'affichage des collections d'éléments Outlook. Il existe différents explorateurs pour chacun des types d'éléments.
  • Inspector
    Cet objet sert d'interface par défaut pour l'affichage d'un élément Outlook. Ce type d'objet se présente en général comme un formulaire.

Le tableau suivant répertorie certains objets parmi ceux du modèle d'objet Outlook.

Objets/collections Représente
Action, Actions Action spécialisée qui peut être exécutée sur un élément. Par exemple, un élément de courrier inclut une action " Répondre ", " Répondre à tous ", " Transférer " et " Répondre dans le fichier ".
AddressList, AddressLists, AddressEntry, AddressEntries Listes d'adresses (par exemple votre liste de contacts, votre carnet d'adresses personnel ou le carnet d'adresses global) contenant ou non des adresses.
Application Objet racine d'application Outlook.
AppointmentItem, ContactItem, DistListItem, DocumentItem, JournalItem, MailItem, MeetingItem, NoteItem, PostItem, RemoteItem, ReportItem, TaskItem, TaskRequestAcceptItem, TaskRequestDeclineItem, TaskRequestItem, TaskRequestUpdateItem Types d'éléments stockés dans les dossiers Outlook.
Attachment, Attachments Liens avec des documents ou documents inclus dans des éléments Outlook.
Exception, Exceptions Exceptions à des rendez-vous périodiques.
Explorer, Explorers, Panes Interface utilisateur d'Outlook et les volets qu'elle contient.
Folders Tous les dossiers Outlook disponibles à un niveau spécifique de la hiérarchie des dossiers Outlook.
Inspector, Inspectors, Pages Fenêtre qui contient un élément Outlook, tel qu'un message électronique ou un contact, et les pages à onglets contenues dans l'élément Outlook (par exemple, l'onglet Détails d'une tâche).
Items, ItemProperty (nouveau dans Outlook 2002), ItemProperties (nouveau dans Outlook 2002) Éléments Outlook (et les propriétés intégrées et définies par l'utilisateur qui leur sont associées) d'un dossier. Un élément Outlook est le composant de base qui renferme des informations dans Outlook (comparable à un fichier). Les éléments incluent les messages électroniques, les rendez-vous, les contacts, les tâches, les entrées de journaux, les notes, les éléments publiés et les documents.
MAPIFolder Dossier Outlook qui contient un des nombreux types d'éléments Outlook.
NameSpace Objet racine abstrait pour une source de données. La seule source de données prise en charge est " MAPI ", qui permet d'accéder à toutes les données Outlook stockées dans les bases de messages d'un utilisateur.
OutlookBarGroup, OutlookBarGroups, OutlookBarPane, OutlookBarShortcut, OutlookBarShortcuts, OutlookBarStorage Il s'agit de la barre Outlook, située sur la gauche de la fenêtre Outlook, qui contient des groupes (tels que Raccourcis Outlook ou Autres raccourcis ) et des raccourcis (tels que Boîte de réception ou Poste de travail).
Recipient, Recipients Destinataire d'un message électronique.
RecurrencePattern Périodicité d'un rendez-vous ou d'une tâche.
Reminder (nouveau dans Outlook 2002), Reminders (nouveau dans Outlook 2002) Rappels qu'il est possible de définir dans Outlook pour des tâches, des contacts et des messages électroniques.
RemoteItem Message électronique à distance.Cet élément ne contient que l'objet, la date et l'heure de réception, l'expéditeur, la taille et les 256 premiers caractères du corps de message. Il permet de donner, à un utilisateur qui se connecte à distance, suffisamment d'informations pour lui permettre de décider de télécharger ou non le message électronique correspondant.
ReportItem Rapport de confirmation de remise d'un message.
Results (nouveau dans Outlook 2002), Search (nouveau dans Outlook 2002) Recherches effectuées par Outlook et résultats de ces recherches.
TaskItem, TaskRequestAccept, TaskAcceptDecline, TaskRequestItem, TaskRequestUpdate Tâches et demandes de tâche, ainsi que les actions d'acceptation, de refus ou de mise à jour liées à ces éléments.
UserProperty, UserProperties Propriétés définies par l'utilisateur pour des éléments Outlook.
View (nouveau dans Outlook 2002), Views (nouveau dans Outlook 2002) Représentations personnalisables d'éléments Outlook. Les types d'affichage sont olTableView, olCalendarView, olCardView, olIconView et olTimeLineView.

Utilisation des objets Application et NameSpace

Comme avec les autres modèles d'objet dans Office, vous utilisez l'objet Application pour accéder au modèle d'objet Outlook. Une seule instance d'Outlook peut s'exécuter à la fois ; par conséquent, l'utilisation du mot clé New (ou de la fonction CreateObject si vous utilisez VBScript) crée une nouvelle instance cachée d'Outlook (si Outlook n'est pas en cours d'exécution) ou renvoie une référence à l'instance actuellement active.

Une fois que vous disposez d'une référence à l'instance d'Outlook en cours, utilisez l'objet NameSpace avec le type d'espace de nom MAPI pour accéder aux dossiers et aux éléments Outlook. Par exemple :

' VBA
...
Dim objApp As Outlook.Application
Dim objNameSpace As Outlook.NameSpace
    
Set objApp = New Outlook.Application
Set objNameSpace = objApp.GetNamespace(Type:="MAPI")
...

' VBScript
...
Dim objApp 
Dim objNameSpace 
  
Set objApp = CreateObject("Outlook.Application")
Set objNameSpace = objApp.GetNamespace("MAPI")
...

Utilisation des dossiers et des éléments Outlook

Les éléments Outlook (tels que les messages électroniques, les tâches, les rendez-vous, etc.) sont contenus dans des dossiers Outlook, comparables aux fichiers et dossiers du système de fichiers Windows. L'objet MAPIFolder peut contenir des dossiers Outlook ainsi que des éléments. Vous pouvez également utiliser la collection Folders pour renvoyer des objets MAPIFolder à un niveau particulier de la structure des dossiers Outlook.

La méthode GetDefaultFolder renvoie le dossier par défaut sur la base d'un argument FolderType (par exemple, la constante olFolderInbox renvoie le dossier Boîte de réception pour l'utilisateur en cours de connexion). Il existe d'autres dossiers par défaut, notamment :

  • Le dossier Calendrier (olFolderCalendar) contenant des objets AppointmentItem (réunions ponctuelles ou périodiques, rendez-vous ponctuels ou périodiques)
  • Le dossier Contacts (olFolderContacts) contenant des objets ContactItem et DistListItem
  • Le dossier Éléments supprimés (olFolderDeletedItems)
  • Le dossier Brouillons (olFolderDrafts)
  • Le dossier Journal (olFolderJournal) contenant des objets JournalItem
  • Le dossier Notes (olFolderNotes) contenant des objets NoteItem
  • Le dossier Boîte d'envoi (olFolderOutbox)
  • Le dossier Éléments envoyés (olFolderSentMail)
  • Le dossier Tâches (olFolderTasks) contenant des objets TaskItem
  • Le dossier Tous les dossiers publics (olPublicFoldersAllPublicFolders)

L'exemple suivant fait état du nombre de courriers qui se trouvent dans votre Boîte de réception et que vous avez reçus jusqu'à ce jour, aujourd'hui compris :

Public Sub InboxSendDates()

  Dim objApp As Outlook.Application
  Dim objNameSpace As Outlook.NameSpace
  Dim objMAPIFolder As Outlook.MAPIFolder
  Dim objMailItem As Outlook.MailItem
  Dim lngOldMailCounter As Long
  Dim lngNewMailCounter As Long
    
  Set objApp = New Outlook.Application
  Set objNameSpace = objApp.GetNamespace(Type:="MAPI")
  Set objMAPIFolder = _
    objNameSpace.GetDefaultFolder(FolderType:=olFolderInbox)
  
  For Each objMailItem In objMAPIFolder.Items
    ' Si vous voulez vérifier les résultats, activez la ligne suivante.
    ' Debug.Print objMailItem.SentOn & vbTab & _
      objMailItem.Subject
    
    If objMailItem.SentOn < Date Then
      lngOldMailCounter = lngOldMailCounter + 1
    Else
      lngNewMailCounter = lngNewMailCounter + 1
    End If
  
  Next objMailItem
  
  MsgBox Prompt:="Vous avez reçu " & lngOldMailCounter & _
    " éléments dans votre Boîte de réception jusqu'à ce jour et " & _
    lngNewMailCounter & " éléments aujourd'hui."
    
End Sub

Pour utiliser des sous-dossiers, utilisez la collection Folders. Par exemple :

...
Set objMAPIFolder = _
  objNameSpace.GetDefaultFolder(FolderType:=olFolderInbox) _
  .Folders("Mes messages urgents")
...

Pour créer des éléments Outlook, vous pouvez utiliser la méthode CreateItem de l'objet Application sans passer par l'objet NameSpace. L'exemple suivant crée un rendez-vous privé et l'ajoute au Calendrier de l'utilisateur actuel :

Public Const SUBJECT_MATTER As String = "Dîner d'amis "
Public Const PLACE As String = "Championzone Restaurant"
Public Const START_TIME As String = #8/13/2001 6:00:00 PM#
Public Const DURATION_MINUTES As Long = 90
Public Const MINUTES_BEFORE_START As Long = 45
Public Const BODY_TEXT = "Ne pas oublier le cadeau !"

Public Sub AddAppointment()

  Dim objApp As Outlook.Application
  Dim objAppointment As Outlook.AppointmentItem
    
  Set objApp = New Outlook.Application
  Set objAppointment = objApp.CreateItem(ItemType:=olAppointmentItem)
  
  With objAppointment
    .Subject = SUBJECT_MATTER
    .Location = PLACE
    .Start = START_TIME
    .Duration = DURATION_MINUTES
    .ReminderMinutesBeforeStart = MINUTES_BEFORE_START
    .BusyStatus = olOutOfOffice
    .Body = BODY_TEXT
    .Sensitivity = olPrivate
    .Save
    .Display
  End With
  
End Sub

Il est possible de créer d'autres éléments avec la méthode CreateItem, notamment des contacts (olContactItem), des listes de distribution (olDistributionListItem), des entrées de journal (olJournalItem), des messages électroniques (olMailItem), des notes (olNoteItem), des publications (olPostItem) et des tâches (olTaskItem). Vous pouvez aussi utiliser la méthode CreateItemFromTemplate pour créer des éléments à partir de fichiers modèles (*.oft) Outlook.

Utilisation des objets Inspector et Explorer

Un explorateur Outlook équivaut à l'interface utilisateur d'Outlook. Les inspecteurs sont des éléments Outlook ouverts dans l'interface utilisateur.

Vous accédez aux objets Inspector et Explorer directement par le biais de l'objet Application. L'exemple suivant affiche la barre Outlook, la liste des dossiers et le volet de visualisation s'ils ne sont pas déjà visibles :

' VBA
Public Sub EnableExplorerUI()

  Dim objApp As Outlook.Application
  Dim objExplorer As Outlook.Explorer
    
  Set objApp = New Outlook.Application
  Set objExplorer = objApp.ActiveExplorer
  
  With objExplorer
    If .IsPaneVisible(Pane:=olFolderList) = False Then
      .ShowPane Pane:=olFolderList, Visible:=True
    End If
    If .IsPaneVisible(Pane:=olOutlookBar) = False Then
      .ShowPane Pane:=olOutlookBar, Visible:=True
    End If
    If .IsPaneVisible(Pane:=olPreview) = False Then
      .ShowPane Pane:=olPreview, Visible:=True
    End If
  End With
      
End Sub

' VBScript
...
Dim objApp 
Dim objExplorer 
    
Set objApp = CreateObject("Outlook.Application")
Set objExplorer = objApp.ActiveExplorer
  
With objExplorer
  If .IsPaneVisible(1) = False Then
    .ShowPane 1, True
  End If
  If .IsPaneVisible(2) = False Then
    .ShowPane 2, True
  End If
  If .IsPaneVisible(3) = False Then
    .ShowPane 3, True
  End If
End With
...

L'exemple suivant utilise la collection Inspectors pour afficher les noms de tous les éléments Outlook actuellement ouverts :

Public Sub InspectorList()

  Dim objInspector As Outlook.Inspector
  Dim strInspectors As String
  
  Set objInspector = Application.ActiveInspector
    
  If TypeName(VarName:=objInspector) = "Nothing" Then
    MsgBox Prompt:="Aucun élément Outlook n'est ouvert."
    Exit Sub
  Else
    For Each objInspector In Application.Inspectors
      strInspectors = strInspectors & vbCrLf & _
        objInspector.Caption
    Next objInspector
    MsgBox Prompt:="Éléments Outlook ouverts :" & vbCrLf & _
      strInspectors
  End If

End Sub

Utilisation de la barre Outlook

La barre Outlook, située sur le côté gauche de la fenêtre Outlook, contient des groupes (tels que Raccourcis Outlook) et des raccourcis au sein de ces groupes (par exemple Boîte de réception).

Vous pouvez utiliser la barre Outlook par programmation via les objets et les collections ci-après : OutlookBarPane | OutlookBarStorage | OutlookBarGroups | OutlookBarGroup | OutlookBarShortcuts | OutlookBarShortcut. Par exemple, la ligne de code suivante ajoute un raccourci vers MSDN dans le groupe Mes raccourcis de la barre Outlook :

ActiveExplorer.Panes.Item("OutlookBar").Contents.Groups _
  .Item("Mes raccourcis").Shortcuts _
  .Add "https://msdn.microsoft.com", "MSDN"

Utilisation des affichages

Les objets d'affichage permettent de créer des vues personnalisables qui facilitent le tri, le regroupement et l'affichage de données de types différents. Il existe plusieurs types d'affichages :

  • Le type d'affichage Tableau (olTableView) présente les données dans un tableau simple.
  • Le type d'affichage Calendrier (olCalendarView) présente les données au format calendaire.
  • Le type d'affichage Carte (olCardView) présente les données sous la forme d'une série de cartes. Chaque carte contient les informations figurant dans l'élément et il est possible de les trier.
  • Le type d'affichage Icône (olIconView) présente les données sous la forme d'icônes, comme un dossier Windows ou comme dans l'Explorateur.
  • Le type d'affichage Chronologie (olTimelineView) présente les données reçues dans un ordre chronologique personnalisable.

Les affichages sont définis et personnalisés via la propriété XML de l'objet View. La propriété XML permet de renvoyer ou d'établir une définition XML personnalisée qui définit les différentes caractéristiques d'un affichage. La définition XML décrit l'affichage à l'aide d'une série de balises et de mots clés qui correspondent à ses différentes propriétés. L'exemple suivant crée un nouvel affichage pour le dossier Boîte de réception puis, en utilisant la propriété XML de l'objet View, affiche la définition XML de cet affichage dans la fenêtre Exécution de Visual Basic Editor.

Sub XMLView()
'Crée un affichage et affiche la définition XML 
'dans la fenêtre Exécution.

  Dim olApp As Outlook.Application
  Dim objViews As Views
  Dim objView As View

  Set olApp = Outlook.Application
  Set objViews = _
  olApp.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox).Views
  Set objView = objViews.Add _
    ("New Table View", olTableView, _
    olViewSaveOptionAllFoldersOfType)

  Debug.Print objView.XML

End Sub

La définition XML telle qu'elle apparaît dans la fenêtre Exécution de Visual Basic Editor est la suivante :

Cliquez ici pour agrandir l'image
Figure 2. Définition XML d'un affichage du dossier Boîte de réception (cliquez sur l'image pour l'agrandir)

Exploration des formulaires Outlook

Lorsque vous développez une interface utilisateur personnalisée, vous pouvez utiliser deux types de formulaires : le premier, UserForm, se crée dans l'environnement VBA et utilise le langage de programmation VBA. L'autre est un formulaire Outlook personnalisé qui permet d'adapter un des formulaires intégrés, par exemple un formulaire Contact, et qui utilise le langage de programmation dans l'Éditeur de script d'Outlook.

Utilisation du formulaire utilisateur, ou UserForm

L'objet UserForm convient particulièrement lorsqu'il s'agit de personnaliser des formulaires dans lesquels il n'est pas nécessaire d'afficher des éléments Outlook intégrés. Vous pouvez l'utiliser pour créer votre formulaire puis, à l'aide du Générateur des formulaires, y ajouter différents contrôles. Vous pouvez ensuite ajouter un code VBA sous-jacent afin de répondre aux divers événements. La figure 3 montre les différents composants utilisés dans Visual Basic Editor pour créer des formulaires utilisateur. Pour créer un formulaire utilisateur UserForm :

  1. Ouvrez Visual Basic Editor (ALT+F11).
  2. Dans le menu Insertion, cliquez sur UserForm.
  3. Dans le menu Affichage, cliquez sur Boîte à outils pour afficher la palette des contrôles de base.
  4. Ajoutez les contrôles de votre choix et définissez leurs propriétés.
  5. Dans le menu Affichage, cliquez sur Code pour ouvrir la fenêtre de code et écrivez un code pour les événements associés aux formulaires et aux contrôles.

**Remarque   ** Le formulaire UserForm et le code de programmation qui lui est associé sont sauvegardés dans le fichier VbaProject.OTM sur votre machine locale.

Cliquez ici pour agrandir l'image
Figure 3. Le Générateur des formulaires tel qu'il apparaît dans Visual Basic Editor (cliquez sur l'image pour l'agrandir)

Utilisation des formulaires Outlook

La création de formulaires Outlook personnalisés met en oeuvre un processus tout à fait différent de la génération d'un UserForm. Vous devez partir d'un formulaire Outlook existant, tel que Contact, Rendez-vous ou Tâche. Puis, avec le Générateur des formulaires d'Outlook, modifiez ce formulaire existant en fonction de vos besoins, en insérant des champs personnalisés destinées à des informations spécifiques. Vous pouvez personnaliser les formulaires standard ou en créer un à partir de ces derniers. Pour créer un formulaire Outlook personnalisé :

  1. Dans Outlook, cliquez sur le menu Outils, pointez sur Formulaires, puis cliquez sur Créer un formulaire. La boîte de dialogue Créer un formulaire s'affiche (figure 4).

    figure 4
    Figure 4. Boîte de dialogue Créer un formulaire

  2. Dans la boîte Créer un formulaire, sélectionnez le type de formulaire que vous voulez personnaliser, puis cliquez sur Ouvrir. Le formulaire s'affiche alors en mode création, comme le montre la figure 5.

    Cliquez ici pour agrandir l'image
    Figure 5. Formulaire Contact en mode création (cliquez sur l'image pour l'agrandir)

Lorsque le formulaire est ouvert en mode création, vous pouvez commencer les modifications, par exemple :

  • Ajout de champs supplémentaires, à partir du Sélecteur de champs
  • Modification de l'emplacement des champs existants
  • Suppression de champs
  • Ajout de champs personnalisés
  • Ajout de contrôles tels que des cases à cocher, des zones de liste et des boutons de commande
  • Modification de l'ordre des onglets
  • Activation de nouvelles pages dans le formulaire avec un nom personnalisé pour chacune d'elles
  • Modification des propriétés par défaut
  • Modification ou ajout d'actions

Comme nous l'avons signalé plus haut, la grande différence entre les formulaires Outlook et l'objet UserForm tient à l'usage du langage de programmation VBScript pour automatiser différents aspects du formulaire. Outlook propose un éditeur VBScript intégré que vous ouvrez en cliquant sur le menu Formulaire puis sur Afficher le code. La figure 6 montre l'Éditeur de script Outlook :

Figure 6.
Figure 6. Éditeur de script Outlook

Lorsque vous êtes dans l'Éditeur de script, vous pouvez créer des fonctions et des procédures VBScript pour mettre en oeuvre des interactions avec le formulaire et le modèle d'objet Outlook. En outre, vous pouvez utiliser la boîte de dialogue Insérer un gestionnaire d'événements et saisir les déclarations de fonction pour des événements standard qui sont associés au type particulier de formulaire que vous personnalisez. Pour insérer un gestionnaire d'événements :

  1. Dans l'Éditeur de script Outlook, cliquez sur Script, puis sur Gestionnaire d'événements. La boîte de dialogue Insérer un gestionnaire d'événements s'affiche (figure 7).

  2. Cliquez sur l'événement auquel vous voulez associer un code, puis cliquez sur Ajouter pour insérer la déclaration de fonction dans l'Éditeur de script Outlook.

    Figure 7.
    Figure 7. Boîte de dialogue Insérer un gestionnaire d'événements

Lorsque vous avez terminé les modifications, vous pouvez sauvegarder le formulaire en tant que modèle Outlook (*.oft), ou le publier dans votre bibliothèque des formulaires personnels ou de l'organisation.

Le présent article n'a pas pour objectif de décrire de manière exhaustive le processus de personnalisation des formulaires Outlook, mais vous trouverez d'autres informations dans l'ouvrage édité par Microsoft Press "Building Applications with Microsoft Outlook Version 2002" (en anglais).

Distribution des solutions Outlook

Pour distribuer des solutions Outlook créées en dehors d'Outlook, assurez-vous que les destinataires ont installé sur leur ordinateur une version correcte légale du programme Outlook. Sinon, vous pouvez utiliser l'Assistant Empaquetage & déploiement, le programme d'installation de Microsoft Visual Studio® ou tout autre outil de distribution de logiciels.

Si les solutions Outlook que vous distribuez ont été créées entièrement dans Outlook avec VBA, n'oubliez pas que Outlook ne prend en charge qu'un seul projet VBA. Celui-ci est associé à un utilisateur unique et à une seule instance d'Outlook en cours d'exécution. Outlook ne gère pas l'association d'un code VBA avec un élément Outlook particulier (utilisez VBScript pour écrire le code associé à un élément Outlook). L'écriture du fichier VbaProject.OTM sur l'ordinateur détruit le contenu précédent. Le fichier de projet Outlook VBA unique, VbaProject.OTM, se trouve dans l'un des dossiers suivants :

  1. Si vous utilisez des versions de Microsoft Windows® antérieure à Microsoft Windows NT® et si des profils ont été configurés pour plusieurs utilisateurs, VbaProject.OTM se trouve dans le dossier C:\Windows\Profiles\NomUtilisateur\Application Data\Microsoft\Outlook. Si aucun profil utilisateur n'est configuré, le fichier VbaProject.OTM se trouve dans C:\Windows\Application Data\Microsoft\Outlook.
  2. Si vous utilisez Windows NT ou une version supérieure, VbaProject.OTM se trouve dans C:\Documents and Settings\NomUtilisateur\Application Data\Microsoft\Outlook.

Une meilleure approche pour distribuer des solutions Outlook VBA consiste à utiliser les compléments COM (Component Object Model). Pour plus d'informations sur la création de compléments COM, reportez-vous à l'article de la Base de connaissances Microsoft HOW TO: Create Office COM Add-Ins by Using VBA and Office Developer Lien non MSDN France Site en anglais.

Si vous distribuez des éléments Outlook spécifiques avec un code VBScript associé, vous pouvez les sauvegarder sous la forme de fichiers modèles Outlook (*.oft) et les distribuer comme n'importe quel autre type de fichier. Si vous utilisez Microsoft Exchange Server, vous pouvez aussi héberger des fichiers modèles Outlook dans une bibliothèque de formulaires de l'organisation pour en faciliter l'accès.

Conclusion

Cet article vous a présenté quelques techniques de base permettant de créer des solutions Outlook. Lorsque vous créez une solution Outlook, vous utilisez conjointement un code de programmation et le modèle d'objet Outlook, des formulaires UserForm avec VBA et des formulaires Outlook personnalisés avec un code de programmation VBScript. Une fois la solution développée, la méthode adoptée pour la déployer dépend des besoins de votre organisation.

Dernière mise à jour le jeudi 7 février 2002

Pour en savoir plus