Global Access to Objects in Office Projects

When you create an Office project, Visual Studio automatically generates a class named Globals in the project. You can use the Globals class to access several different project items at run time from any code in the project.

Applies to: The information in this topic applies to document-level projects and application-level projects for Microsoft Office 2010 and the 2007 Microsoft Office system. For more information, see Features Available by Office Application and Project Type.

Globals is a static class that keeps references to certain items in your project. By using the Globals class, you can access the following items from any code in the project at run time:

  • The ThisWorkbook and Sheetn classes in an Excel workbook or template project. You can access these objects by using the Globals.ThisWorkbook and Sheetn properties.

  • The ThisDocument class in a Word document or template project. You can access this object by using the Globals.ThisDocument property.

  • The ThisAddIn class in an application-level project. You can access this object by using the Globals.ThisAddIn property.

  • All Ribbons in your project that you customized by using the Ribbon Designer. You can access the Ribbons by using the Globals.Ribbons property. For more information, see Accessing the Ribbon at Run Time.

  • All Outlook form regions in an Outlook add-in project. You can access the form regions by using the Globals.FormRegions property. For more information, see Accessing a Form Region at Run Time.

  • A factory object that enables you to create Ribbon controls, smart tags, and host items at run time in projects that target the .NET Framework 4. You can access this object by using the Globals.Factory property. This object is an instance of a class that implements one the following interfaces:

    NoteNote

    Smart tags are deprecated in Excel 2010 and Word 2010. For more information, see Smart Tags Overview.

    NoteNote

    The Factory property is only available for projects that target the .NET Framework 4. Projects that target the .NET Framework 3.5 use other methods to create Ribbon controls, smart tags, and host items at run time.

For example, you can use the Globals.Sheet1 property to insert text into a NamedRange control on Sheet1 when a user clicks a button on the actions pane in a document-level project for Excel.


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


Code that attempts to use the Globals class before the document or add-in is completely initialized might throw a run time exception. For example, using Globals when declaring a class-level variable might fail because the Globals class might not be initialized with references to all of the host items before the declared object is instantiated.

NoteNote

The Globals class is never initialized at design time, but control instances are created by the designer. This means that if you create a user control that uses a property of the Globals class from inside a user control class, you must whether the property returns null before you try to use the returned object.

Was this page helpful?
(1500 characters remaining)
Thank you for your feedback

Community Additions

ADD
Show:
© 2014 Microsoft