Accès global aux objets dans les projets Bureau

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 classe Globals pour accéder à plusieurs éléments de projet différents au moment de l'exécution à partir du code du projet.

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

Comment utiliser la classe Globals

Globals est une classe statique qui conserve les références à certains éléments de votre projet. Grâce à la classe Globals , vous pouvez accéder aux éléments suivants à partir de tout code de votre projet au moment de l'exécution :

  • Classes ThisWorkbook et Sheetn dans un projet de modèle ou un classeur Excel. Vous pouvez accéder à ces objets à l'aide des propriétés Globals.ThisWorkbook et Sheetn .

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

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

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

  • Toutes les zones de formulaire Outlook dans un projet de complément VSTO Outlook. Vous pouvez accéder aux zones de formulaire à l'aide de la propriété Globals.FormRegions . 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 propriété Globals.Factory . 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 le texte dans un contrôle NamedRange sur Sheet1 lorsqu'un utilisateur clique sur un bouton du volet Actions dans un projet de niveau 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 l’initialisation du document ou du complément VSTO peut lever une exception d’exécution. Par exemple, l'utilisation de Globals lors de la déclaration d'une variable au niveau de la classe peut échouer, car la classe Globals 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é.

Remarque

La classe Globals n'est jamais initialisée au moment du design, mais des 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 case activée si la propriété retourne null avant d’essayer d’utiliser l’objet retourné.