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 classe Globals para acessar diversos itens diferentes do projeto a partir de qualquer código no projeto em tempo de execução.

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

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 classes ThisWorkbook e Sheetn em uma pasta de trabalho ou projeto modelo do Excel. Você pode acessar esses objetos usando as Globals.ThisWorkbook propriedades e Sheetn .

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

  • A classe ThisAddIn 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 um formulário durante a execução.

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

    Por exemplo, você pode usar a propriedade Globals.Sheet1 para inserir texto em um controle NamedRange no Sheet1 quando um usuário clica em um botão no painel de ações em um projeto no nível de documento para o 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, usar Globals ao declarar uma variável de nível de classe pode falhar porque a Globals classe pode não ser inicializada com referências a todos os itens de 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 Globals classe de dentro de uma classe de controle de usuário, deverá verificar se a propriedade retorna nulo antes de tentar usar o objeto retornado.