Partager via


Accès global aux objets dans les projets Office

Lorsque vous créez un projet Office, Visual Studio génère automatiquement une classe nommée Globals dans le projet. Vous pouvez utiliser la Globals classe pour accéder à plusieurs éléments de projet différents au moment de l’exécution à partir de n’importe quel code du projet.

S’applique à : Les informations contenues dans cette rubrique s’appliquent aux projets de niveau document et aux projets de complément VSTO. Consultez les fonctionnalités disponibles par type d’application et de projet Office.

Comment utiliser la classe Globals

Globals est une classe statique qui conserve les références à certains éléments de votre projet. À l’aide de la Globals classe, vous pouvez accéder aux éléments suivants à partir de n’importe quel code du projet au moment de l’exécution :

  • Classes ThisWorkbook et Sheetn d’un classeur Excel ou d’un projet de modèle. Vous pouvez accéder à ces objets en utilisant les propriétés Globals.ThisWorkbook et Sheetn.

  • Classe ThisDocument dans un document Word ou un projet de modèle. Vous pouvez accéder à cet objet à l’aide de la Globals.ThisDocument propriété.

  • Classe ThisAddIn dans un projet de complément VSTO. Vous pouvez accéder à cet objet à l’aide de la Globals.ThisAddIn propriété.

  • Tous les rubans de votre projet que vous avez personnalisés à l’aide du Concepteur de rubans. Vous pouvez accéder aux rubans à l’aide de la Globals.Ribbons propriété. Pour plus d’informations, consultez Accéder au ruban au moment de l’exécution.

  • Toutes les régions de formulaire Outlook dans un projet de complément Outlook VSTO. Vous pouvez accéder aux zones de formulaire à l’aide de la Globals.FormRegions propriété. Pour plus d’informations, consultez Accéder à une zone de formulaire au moment de l’exécution.

  • Objet de fabrique qui vous permet de créer des contrôles de ruban et d’héberger des éléments au moment de l’exécution dans les projets qui ciblent .NET Framework 4 ou .NET Framework 4.5. Vous pouvez accéder à cet objet à l’aide de la Globals.Factory propriété. Cet objet est une instance d’une classe qui implémente l’une des interfaces suivantes :

    Par exemple, vous pouvez utiliser la propriété Globals.Sheet1 pour insérer du texte dans un contrôle NamedRange sur Sheet1 lorsqu’un utilisateur clique sur un bouton dans le volet Actions d’un projet au niveau du document pour Excel.

    private void button1_Click(object sender, EventArgs e)
    {
        Globals.Sheet1.namedRange1.Value2 = this.textBox1.Text;
    }
    

Le code qui tente d’utiliser la Globals classe avant que le document ou le complément VSTO ne soit initialisé peut lever une exception à l'exécution. Par exemple, l’utilisation Globals lors de la déclaration d’une variable au niveau de la classe peut échouer, car la Globals classe peut ne pas être initialisée avec des références à tous les éléments hôtes avant l’instanciation de l’objet déclaré.

Note

La Globals classe n’est jamais initialisée au moment du design, mais les instances de contrôle sont créées par le concepteur. Cela signifie que si vous créez un contrôle utilisateur qui utilise une propriété de la Globals classe à partir d’une classe de contrôle utilisateur, vous devez vérifier si la propriété retourne null avant d’essayer d’utiliser l’objet retourné.