Programmer des compléments VSTO

Quand vous étendez une application Microsoft Office en créant un complément VSTO, vous écrivez directement le code par rapport à la classe ThisAddIn de votre projet. Vous pouvez utiliser cette classe pour effectuer des tâches telles qu’accéder au modèle objet de l’application hôte Microsoft Office, personnaliser l’interface utilisateur de l’application et exposer des objets de votre complément VSTO à d’autres solutions Office.

S’applique à : les informations contenues dans cette rubrique s’appliquent aux projets de complément VSTO. Pour plus d’informations, consultez Fonctionnalités disponibles par application Office lication et le type de projet.

Certains aspects de l’écriture de code des projets de complément VSTO diffèrent des autres types de projets dans Visual Studio. Une grande partie de ces différences ont pour origine la façon dont les modèles objet Office sont exposés au code managé. Pour plus d’informations, consultez Écrire du code dans Bureau solutions.

Pour obtenir des informations générales sur les compléments VSTO et d’autres types de solutions que vous pouvez créer à l’aide des outils de développement Bureau dans Visual Studio, consultez Bureau vue d’ensemble du développement de solutions (VSTO).

Utiliser la classe ThisAddIn

Vous pouvez commencer à écrire votre code de complément VSTO dans la classe ThisAddIn . Visual Studio génère automatiquement cette classe dans le fichier de code ThisAddIn.vb (en Visual Basic) ou ThisAddIn.cs (en C#) dans votre projet de complément VSTO. Le runtime Visual Studio Tools pour Office instancie automatiquement cette classe lorsque Microsoft application Office lication charge votre complément VSTO.

La classe ThisAddIn contient deux gestionnaires d'événements par défaut. Pour exécuter du code quand le complément VSTO est chargé, ajoutez du code au gestionnaire d’événements ThisAddIn_Startup . Pour exécuter du code juste avant que le complément VSTO soit déchargé, ajoutez du code au gestionnaire d’événements ThisAddIn_Shutdown . Pour plus d’informations sur ces gestionnaires d’événements, consultez Événements dans Bureau projets.

Remarque

Dans Outlook, par défaut, le gestionnaire d’événements ThisAddIn_Shutdown n’est pas toujours appelé quand le complément VSTO est déchargé. Pour plus d’informations, consultez Événements dans Bureau projets.

Accéder au modèle objet de l’application hôte

Pour accéder au modèle objet de l'application hôte, utilisez le champ Application de la classe ThisAddIn . Ce champ retourne un objet qui représente l'instance actuelle de l'application hôte. Le tableau suivant indique le type de la valeur de retour pour le champ Application dans chaque projet de complément VSTO.

Application hôte Type de valeur de retour
Microsoft Office Excel Application
Microsoft Office InfoPath Application
Microsoft Office Outlook Application
Microsoft Office PowerPoint Application
Microsoft Office Project Microsoft.Office.Interop.MSProject.Application
Microsoft Office Visio Microsoft.Office.Interop.Visio.Application
Microsoft Office Word Application

L’exemple de code suivant montre comment utiliser le Application champ pour créer un classeur dans un complément VSTO pour Microsoft Bureau Excel. Cet exemple est destiné à être exécuté à partir de la classe ThisAddIn .

Excel.Workbook newWorkbook = this.Application.Workbooks.Add(System.Type.Missing);

Pour effectuer la même opération depuis l'extérieur de la classe ThisAddIn , utilisez l'objet Globals pour accéder à la classe ThisAddIn . Pour plus d’informations sur l’objetGlobals, consultez Accès global aux objets dans Bureau projets.

Excel.Workbook newWorkbook = Globals.ThisAddIn.Application.Workbooks.Add(System.Type.Missing);

Pour plus d'informations sur les modèles objet d'applications Microsoft Office spécifiques, consultez les rubriques suivantes :

Accéder à un document au démarrage de la application Office lication

Toutes les applications Bureau 2010 n’ouvrent pas automatiquement un document lorsque vous les démarrez, et aucune des applications Bureau 2013 n’ouvre un document lorsque vous les démarrez. Par conséquent, n’ajoutez pas de code dans le ThisAdd-In_Startup gestionnaire d’événements si le code nécessite l’ouverture d’un document. Au lieu de cela, ajoutez ce code à un événement que l'application Office déclenche quand un utilisateur crée ou ouvre un document. Ainsi, vous pouvez garantir qu'un document est ouvert avant que votre code effectue des opérations dessus.

L'exemple de code suivant fonctionne avec un document dans Word uniquement lorsque l'utilisateur crée un document ou ouvre un document existant.

    private void ThisAddIn_Startup(object sender, System.EventArgs e)
    {
        this.Application.DocumentOpen +=
new Word.ApplicationEvents4_DocumentOpenEventHandler(WorkWithDocument);

        ((Word.ApplicationEvents4_Event)this.Application).NewDocument +=
            new Word.ApplicationEvents4_NewDocumentEventHandler(WorkWithDocument);  
    }
    
    private void WorkWithDocument(Microsoft.Office.Interop.Word.Document Doc)
    {
        try
        {
            Word.Range rng = Doc.Range(0, 0);
            rng.Text = "New Text";
            rng.Select();
        }
        catch (Exception ex)
        {
            // Handle exception if for some reason the document is not available.
        }
    }

Membres ThisAddIn à utiliser pour d’autres tâches

Le tableau suivant décrit d'autres tâches courantes et montre quels membres de la classe ThisAddIn utiliser pour effectuer ces tâches.

Tâche Membre à utiliser
Exécuter le code pour initialiser le complément VSTO quand ce dernier est chargé. Ajouter le code à la méthode ThisAddIn_Startup . Il s'agit du gestionnaire d'événements par défaut pour l'événement Startup . Pour plus d’informations, consultez Événements dans Bureau projets.
Exécuter le code pour nettoyer les ressources utilisées par le complément VSTO avant que ce dernier soit déchargé. Ajouter le code à la méthode ThisAddIn_Shutdown . Il s'agit du gestionnaire d'événements par défaut pour l'événement Shutdown . Pour plus d’informations, consultez Événements dans Bureau projets. Remarque : Dans Outlook, par défaut, le ThisAddIn_Shutdown gestionnaire d’événements n’est pas toujours appelé lorsque le complément VSTO est déchargé. Pour plus d’informations, consultez Événements dans Bureau projets.
Afficher un volet des tâches personnalisé. Utiliser le champ CustomTaskPanes . Pour plus d’informations, consultez les volets Office personnalisés.
Exposer les objets de votre complément VSTO à d'autres solutions Microsoft Office. Remplacez la méthode RequestComAddInAutomationService . Pour plus d’informations, consultez Call code in VSTO Add-ins from other Bureau solutions.
Personnaliser une fonctionnalité du système Microsoft Office en implémentant une interface d'extensibilité. Substituer la méthode RequestService pour retourner une instance d'une classe qui implémente l'interface. Pour plus d’informations, consultez Personnaliser les fonctionnalités de l’interface utilisateur à l’aide d’interfaces d’extensibilité. Remarque : Pour personnaliser l’interface utilisateur du ruban, vous pouvez également remplacer la CreateRibbonExtensibilityObject méthode.

Comprendre la conception de la classe ThisAddIn

Dans les projets qui ciblent .NET Framework 4, AddIn est une interface. La classe ThisAddIn dérive de la classe AddInBase . Cette classe de base redirige tous les appels vers ses membres vers une implémentation interne de l’interface AddIn dans le runtime Visual Studio Tools pour Office .

Dans les projets de complément VSTO pour Outlook, la ThisAddIn classe dérive de la Microsoft.Office.Tools.Outlook.OutlookAddIn classe dans les projets qui ciblent .NET Framework 3.5 et à partir de OutlookAddInBase projets qui ciblent .NET Framework 4. Ces classes de base fournissent des fonctionnalités supplémentaires permettant la prise en charge des zones de formulaire. Pour plus d’informations sur les zones de formulaire, consultez Créer des zones de formulaire Outlook.

Personnaliser l’interface utilisateur de Microsoft application Office lications

Vous pouvez personnaliser par programmation l’interface utilisateur d’applications Microsoft Office à l’aide d’un complément VSTO. Par exemple, vous pouvez personnaliser le ruban, afficher un volet Office personnalisé, ou créer une zone de formulaire personnalisée dans Outlook. Pour plus d’informations, consultez Bureau Personnalisation de l’interface utilisateur.

Visual Studio fournit des concepteurs et des classes que vous pouvez utiliser pour créer des volets Office personnalisés, des personnalisations de ruban et les zones de formulaire Outlook. Ces concepteurs et classes facilitent le processus de personnalisation de ces fonctionnalités. Pour plus d’informations, consultez volets Office personnalisés, Concepteur de ruban et Créer des zones de formulaire Outlook.

Si vous souhaitez personnaliser l’une de ces fonctionnalités d’une manière non prise en charge par les classes et les concepteurs, vous pouvez aussi personnaliser ces fonctionnalités en implémentant une interface d’extensibilité dans votre complément VSTO. Pour plus d’informations, consultez Personnaliser les fonctionnalités de l’interface utilisateur à l’aide d’interfaces d’extensibilité.

En outre, vous pouvez modifier l'interface utilisateur des documents Word et des classeurs Excel en générant des éléments hôtes qui étendent le comportement des documents et des classeurs. Cela vous permet d'ajouter des contrôles managés aux documents et aux feuilles de calcul. Pour plus d’informations, consultez Étendre les documents Word et les classeurs Excel dans les compléments VSTO au moment de l’exécution.

Appeler du code dans des compléments VSTO à partir d’autres solutions

Vous pouvez exposer des objets de votre complément VSTO à d’autres solutions, notamment à d’autres solutions Office. Cette possibilité s’avère utile si votre complément VSTO propose un service que vous voulez permettre à d’autres solutions d’utiliser. Par exemple, si vous disposez d’un complément VSTO pour Microsoft Bureau Excel qui effectue des calculs sur les données financières d’un service web, d’autres solutions peuvent effectuer ces calculs en appelant le complément VSTO Excel au moment de l’exécution.

Pour plus d’informations, consultez Call code in VSTO Add-ins from other Bureau solutions.