Acceso global a objetos en proyectos de Office

Cuando se crea un proyecto de Office, Visual Studio genera automáticamente una clase denominada Globals en el proyecto. Puede utilizar la clase Globals para tener acceso en tiempo de ejecución a diversos elementos del proyecto desde cualquier código del proyecto.

Se aplica a: la información de este tema se aplica a proyectos de nivel de documento y proyectos de complementos de VSTO. Consulte Características disponibles por aplicación de Office lication y tipo de proyecto.

Uso de la clase Globals

Globals es una clase estática que mantiene referencias a determinados elementos del proyecto. Mediante el uso de la clase Globals puede tener acceso a los siguientes elementos desde cualquier código del proyecto en tiempo de ejecución:

  • Las clases ThisWorkbook y Sheetn de un proyecto de libro o plantilla de Excel. Puede tener acceso a estos objetos mediante las propiedades Globals.ThisWorkbook y Sheetn .

  • La clase ThisDocument de un proyecto de documento o plantilla de Word. Puede tener acceso a este objeto mediante la propiedad Globals.ThisDocument .

  • Clase ThisAddIn en un proyecto de complemento de VSTO. Puede tener acceso a este objeto mediante la propiedad Globals.ThisAddIn .

  • Todas las cintas de opciones del proyecto que haya personalizado mediante el Diseñador de la cinta de opciones. Puede tener acceso a las cintas de opciones mediante la propiedad Globals.Ribbons . Para obtener más información, consulte Acceso a la cinta de opciones en tiempo de ejecución.

  • Todas las áreas de formulario de Outlook en un proyecto de complemento de VSTO para Outlook. Puede tener acceso a las áreas de formulario mediante la propiedad Globals.FormRegions . Para obtener más información, consulte Acceso a un área de formulario en tiempo de ejecución.

  • Objeto de fábrica que permite crear controles de cinta de opciones y hospedar elementos en tiempo de ejecución en proyectos que tienen como destino .NET Framework 4 o .NET Framework 4.5. Puede tener acceso a este objeto mediante la propiedad Globals.Factory . Este objeto es una instancia de una clase que implementa una de las interfaces siguientes:

    Por ejemplo, puede utilizar la propiedad Globals.Sheet1 para insertar texto en un control NamedRange en Sheet1 , cuando un usuario haga clic en un botón del panel de acciones en un proyecto de nivel de documento para Excel.

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

El código que intenta usar la Globals clase antes de inicializar el documento o el complemento VSTO podría producir una excepción en tiempo de ejecución. Por ejemplo, el uso de Globals al declarar una variable de nivel de clase podría provocar un error, ya que la clase Globals podría no estar inicializada con referencias a todos los elementos host antes de que se creara una instancia del objeto declarado.

Nota:

La clase Globals nunca se inicializa en tiempo de diseño, sino que el diseñador crea instancias de controles. Esto significa que si crea un control de usuario que usa una propiedad de la Globals clase desde dentro de una clase de control de usuario, debe comprobar si la propiedad devuelve null antes de intentar usar el objeto devuelto.