Compartilhar via


Acesso global a objetos em projetos do Office

Quando você cria um projeto do Office, o Visual Studio gera automaticamente uma classe nomeada Globals no projeto. Você pode usar a Globals classe para acessar vários itens de projeto diferentes em tempo de execução de qualquer código no projeto.

Aplica-se a: As informações neste tópico se aplicam a projetos de nível de documento e projetos de suplemento VSTO. Consulte Recursos disponíveis por aplicativo e tipo de projeto do Office.

Como usar a classe Globals

Globals é uma classe estática que mantém referências a determinados itens em seu projeto. Usando a Globals classe, você pode acessar os seguintes itens de qualquer código no projeto em tempo de execução:

  • As ThisWorkbook classes e Sheetn em uma pasta de trabalho ou projeto de modelo do Excel. Você pode acessar esses objetos usando as Globals.ThisWorkbook propriedades e Sheetn .

  • A ThisDocument classe em um documento do Word ou projeto de modelo. Você pode acessar esse objeto usando a Globals.ThisDocument propriedade.

  • A ThisAddIn classe em um projeto de suplemento VSTO. Você pode acessar esse objeto usando a Globals.ThisAddIn propriedade.

  • Todas as Faixas de Opções em seu projeto que você personalizou usando o Designer da Faixa de Opções. Você pode acessar as Faixas de Opções usando a Globals.Ribbons propriedade. Para obter mais informações, consulte Acessar a Faixa de Opções em tempo de execução.

  • Todas as regiões de formulário do Outlook em um projeto de suplemento VSTO do Outlook. Você pode acessar as regiões do formulário usando a Globals.FormRegions propriedade. Para obter mais informações, consulte Acessar uma região de formulário em tempo de execução.

  • Um objeto de fábrica que permite criar controles da Faixa de Opções e itens de host em tempo de execução em projetos destinados ao .NET Framework 4 ou ao .NET Framework 4.5. Você pode acessar esse objeto usando a Globals.Factory propriedade. Este objeto é uma instância de uma classe que implementa uma das seguintes interfaces:

    Por exemplo, você pode usar a Globals.Sheet1 propriedade para inserir texto em um controle quando um usuário clica Sheet1 em um botão no painel de ações em um NamedRange projeto de nível de documento para Excel.

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

O código que tenta usar a Globals classe antes que o documento ou o suplemento VSTO seja inicializado pode gerar uma exceção de tempo de execução. Por exemplo, o uso Globals ao declarar uma variável de nível de classe pode falhar porque a classe pode não ser inicializada com referências a Globals todos os itens do host antes que o objeto declarado seja instanciado.

Observação

A Globals classe nunca é inicializada em tempo de design, mas as instâncias de controle são criadas pelo designer. Isso significa que se você criar um controle de usuário que usa uma propriedade da classe de dentro de uma classe de controle de usuário, você deve verificar se a propriedade retorna null antes de Globals tentar usar o objeto retornado.