Accesso globale agli oggetti nei progetti di Office

Quando si crea un progetto di Office, Visual Studio genera automaticamente una classe denominata Globals nel progetto. È possibile usare la classe Globals per accedere ai diversi elementi del progetto in fase di esecuzione da qualsiasi codice del progetto.

Si applica a: le informazioni contenute in questo argomento si applicano ai progetti a livello di documento e ai progetti di componente aggiuntivo VSTO. Vedere Funzionalità disponibili per app Office lication e tipo di progetto.

Come usare la classe Globals

Globals è una classe statica che mantiene i riferimenti ad alcuni elementi del progetto. Usando la Globals , è possibile accedere agli elementi seguenti da qualsiasi codice del progetto in fase di esecuzione:

  • Le classi ThisWorkbook e Sheetn in un progetto modello o cartella di lavoro di Excel. È possibile accedere a questi oggetti usando le proprietà Globals.ThisWorkbook e Sheetn .

  • La classe ThisDocument in un progetto modello o documento di Word. È possibile accedere a questo oggetto stato usando la proprietà Globals.ThisDocument .

  • Classe ThisAddIn in un progetto di componente aggiuntivo VSTO. È possibile accedere a questo oggetto stato usando la proprietà Globals.ThisAddIn .

  • Tutte le barre multifunzione del progetto che sono state personalizzate usando la finestra di progettazione della barra multifunzione. È possibile accedere alle barre multifunzione usando la proprietà Globals.Ribbons . Per altre informazioni, vedere Accedere alla barra multifunzione in fase di esecuzione.

  • Tutte le aree del modulo di Outlook in un progetto di componente aggiuntivo VSTO di Outlook. È possibile accedere alle aree del modulo usando la proprietà Globals.FormRegions . Per altre informazioni, vedere Accedere a un'area del modulo in fase di esecuzione.

  • Oggetto factory che consente di creare controlli della barra multifunzione e di ospitare elementi in fase di esecuzione nei progetti destinati a .NET Framework 4 o .NET Framework 4.5. È possibile accedere a questo oggetto stato usando la proprietà Globals.Factory . Questo oggetto è l'istanza di una classe che implementa una le interfacce seguenti:

    Ad esempio, è possibile usare la proprietà Globals.Sheet1 per inserire testo in un controllo NamedRange in Sheet1 quando un utente fa clic su un pulsante del riquadro delle azioni in un progetto livello di documento per Excel.

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

Il codice che tenta di usare la Globals classe prima che il documento o il componente aggiuntivo VSTO venga inizializzato potrebbe generare un'eccezione di runtime. Ad esempio, l'utilizzo di Globals per la dichiarazione di una variabile a livello di classe potrebbe avere esito negativo perché la classe Globals potrebbe non essere inizializzata con i riferimenti a tutti gli elementi host prima della creazione di un'istanza dell'oggetto dichiarato.

Nota

La classe Globals non viene mai inizializzata in fase di progettazione, ma vengono create istanze di controllo nella finestra di progettazione. Ciò significa che se si crea un controllo utente che utilizza una proprietà della Globals classe dall'interno di una classe di controllo utente, è necessario verificare se la proprietà restituisce Null prima di provare a utilizzare l'oggetto restituito.