Partager via


Programmation de personnalisations au niveau du document

Lorsque vous étendez Microsoft Office Word ou Microsoft Office Excel par le biais d'une personnalisation au niveau du document, vous pouvez effectuer les tâches suivantes :

  • Automatiser l'application à l'aide de son modèle objet.

  • Ajouter des contrôles à la surface du document.

  • Appeler du code Visual Basic pour Applications (VBA) dans le document depuis l'assembly de personnalisation.

  • Appeler du code dans l'assembly de personnalisation depuis VBA.

  • Gérer certains aspects du document lorsqu'il se trouve sur un serveur sur lequel Microsoft Office n'est pas installé.

  • Personnaliser l'interface utilisateur de l'application.

S'applique à : Les informations contenues dans cette rubrique s'appliquent aux projets de niveau document pour les applications suivantes : Excel 2007, Excel 2010, Word 2007 et Word 2010. Pour en savoir plus, consultez Fonctionnalités disponibles par type d'application et de projet Office.

Certains aspects de l'écriture de code des projets au niveau du document diffèrent des autres types de projets dans Visual Studio. Une grande partie de ces différences sont liées à la façon dont les modèles objet Office sont exposés au code managé. Pour plus d'informations, consultez Écriture de code dans les solutions Office.

Pour plus d'informations générales sur les personnalisations au niveau du document et les autres types de solutions que vous pouvez créer à l'aide des outils de développement Office dans Visual Studio, consultez Vue d'ensemble du développement des solutions Office.

Utilisation des classes générées dans les projets au niveau du document

Lorsque vous créez un projet au niveau du document, Visual Studio génère automatiquement une classe dans le projet que vous pouvez utiliser pour commencer à écrire votre code. Visual Studio génère des classes différentes pour Word et Excel :

  • Dans les projets au niveau du document pour Word, la classe est appelée ThisDocument par défaut.

  • Les projets au niveau du document pour Excel comportent plusieurs classes générées : une pour le classeur lui-même et une autre pour chaque feuille de calcul. Par défaut, ces classes portent les noms suivants :

    • ThisWorkbook

    • Sheet1

    • Sheet2

    • Sheet3

La classe générée inclut des gestionnaires d'événements appelés à l'ouverture et à la fermeture du document. Pour exécuter un code à l'ouverture du document, ajoutez celui-ci au gestionnaire d'événements Startup. Pour exécuter du code juste avant la fermeture du document, ajoutez-le au gestionnaire d'événements Shutdown. Pour plus d'informations, consultez Événements dans les projets Office.

Comprendre la conception des classes générées

Dans les projets qui ciblent le .NET Framework 3.5, les classes générées dérivent la plupart de leurs membres et comportement des classes d'élément hôte suivantes de Visual Studio Tools pour Office Runtime : 

  • ThisDocument : dérive de Microsoft.Office.Tools.Word.Document.

  • ThisWorkbook : dérive de Microsoft.Office.Tools.Excel.Workbook.

  • Sheetn : dérive de Microsoft.Office.Tools.Excel.Worksheet

Les éléments hôtes sont des types situés en haut des hiérarchies de modèles objets dans les projets Office qui étendent le comportement des objets correspondants dans les assemblys PIA Office. Pour plus d'informations sur les éléments hôtes, consultez Vue d'ensemble des éléments hôtes et des contrôles hôtes.

Dans les projets qui ciblent le .NET Framework 4, les types d'éléments hôtes de Visual Studio Tools pour Office Runtime sont des interfaces, donc l'implémentation des classes générées ne peut pas en dériver. Les membres des classes générées dérivent pour la plupart des classes de base suivantes :

Ces classes de base redirigent tous les appels généraux à leurs membres vers les implémentations internes des interfaces d'élément hôte correspondantes du Visual Studio Tools pour Office Runtime. Par exemple, si vous appelez la méthode Protect de la classe ThisDocument, la classe Microsoft.Office.Tools.Word.DocumentBase redirigera cet appel vers l'implémentation interne de l'interface Microsoft.Office.Tools.Word.Document de Visual Studio Tools pour Office Runtime. Pour connaître les différences entre les projets ciblant .NET Framework 3.5 et .NET Framework 4 dans Visual Studio Tools pour Office Runtime, consultez Vue d'ensemble de Visual Studio Tools pour Office Runtime.

Accès au modèle objet de l'application hôte

Pour accéder au modèle objet de l'application hôte, utilisez des membres de la classe générée dans votre projet. Chaque classe correspond à un objet dans le modèle objet d'Excel ou Word et contient plus ou moins les mêmes propriétés, méthodes et événements. Par exemple, la classe ThisDocument d'un projet au niveau du document pour Word fournit plus ou moins les mêmes membres que l'objet Microsoft.Office.Interop.Word.Document du modèle objet Word.

L'exemple de code suivant indique comment utiliser le modèle objet Word pour enregistrer le document qui fait partie d'une personnalisation au niveau du document pour Word. Cet exemple est destiné à être exécuté depuis la classe ThisDocument.

Me.Save()
this.Save();

Pour effectuer la même opération en dehors de la classe ThisDocument, utilisez l'objet Globals pour accéder à la classe ThisDocument. Par exemple, vous pouvez ajouter ce code à un fichier de code de volet Actions si vous souhaitez inclure un bouton Enregistrer dans l'interface utilisateur de celui-ci.

Globals.ThisDocument.Save()
Globals.ThisDocument.Save();

Étant donné que la classe ThisDocument obtient la plupart de ses membres de l'élément hôte Microsoft.Office.Tools.Word.Document, la méthode Save appelée dans ce code est réellement la méthode Save de l'élément hôte Microsoft.Office.Tools.Word.Document. Cette méthode correspond à la méthode Save de l'objet Microsoft.Office.Interop.Word.Document dans le modèle objet de Word.

Pour plus d'informations sur l'utilisation des modèles objets de Word et Excel, consultez Vue d'ensemble du modèle objet Word et Vue d'ensemble du modèle objet Excel.

Pour plus d'informations sur l'objet Globals, consultez Accès global aux objets dans les projets Office.

Ajout de contrôles à des documents

Pour personnaliser l'interface utilisateur du document, vous pouvez ajouter des contrôles Windows Forms ou des contrôles hôtes à la surface du document. En combinant plusieurs jeux de contrôles et en écrivant du code, vous pouvez lier les contrôles aux données, rassembler des informations auprès de l'utilisateur et répondre aux actions de celui-ci.

Les contrôles hôtes sont des classes qui étendent certains objets du modèle objet Word et Excel. Par exemple, le contrôle hôte Microsoft.Office.Tools.Excel.ListObject fournit toutes les fonctionnalités de Microsoft.Office.Interop.Excel.ListObject dans Excel. Toutefois, le contrôle hôte Microsoft.Office.Tools.Excel.ListObject contient aussi des événements supplémentaires et des fonctions de liaison de données.

Pour plus d'informations, consultez Vue d'ensemble des éléments hôtes et des contrôles hôtes et Vue d'ensemble des contrôles Windows Forms dans les documents Office.

Combinaison de VBA et de personnalisations au niveau du document

Vous pouvez utiliser du code VBA dans un document appartenant à une personnalisation au niveau du document. Vous pouvez appeler du code VBA dans le document de l'assembly de personnalisation et configurer votre projet pour permettre au code VBA du document d'appeler le code de l'assembly de personnalisation.

Pour plus d'informations, consultez Combinaison de VBA et de personnalisations au niveau du document.

Gestion de documents sur un serveur

Vous pouvez gérer différents aspects des personnalisations au niveau du document sur un serveur qui n'est pas doté de Microsoft Office Word ou de Microsoft Office Excel. Par exemple, vous pouvez accéder aux données du cache de données du document et les modifier. Vous pouvez également gérer l'assembly de personnalisation associé au document. Par exemple, vous pouvez supprimer par programmation l'assembly du document afin que le document n'exécute plus votre code, ou vous pouvez joindre par programmation un assembly à un document.

Pour plus d'informations, consultez Gestion de documents sur un serveur à l'aide de la classe ServerDocument.

Personnalisation de l'interface utilisateur des applications Microsoft Office

Vous pouvez personnaliser l'interface utilisateur de Word et Excel à l'aide d'une personnalisation au niveau du document comme suit :

Pour plus d'informations sur la personnalisation de l'interface utilisateur des applications Microsoft Office, consultez Personnalisation de l'interface utilisateur Office.

Voir aussi

Concepts

Gestion de documents sur un serveur à l'aide de la classe ServerDocument

Obtention d'objets étendus à partir d'objets Office natifs dans les personnalisations au niveau du document

Écriture de code dans les solutions Office

Autres ressources

Contrôles sur des documents Office

Combinaison de VBA et de personnalisations au niveau du document