对 Visual Studio Tools for Office 项目中的对象的全局访问

更新:2007 年 11 月

您可以使用 Globals 类从项目内的任何代码中访问若干不同的项目项。

如何使用 Globals

Globals 是一个静态类,它会保持对项目内各个项的引用。通过使用 Globals 类,可从项目内的任何代码中引用下列项:

  • Excel 工作簿或模板项目中的 Workbook 或任何 Worksheet 宿主项。在项目中使用引用每个宿主项的 Globals 类的属性来访问这些宿主项。默认情况下,宿主项名称为 ThisWorkbook、Sheet1、Sheet2 和 Sheet3。

  • Word 文档或模板项目中的 Document 宿主项。此宿主项属性的默认名称为 Globals.ThisDocument。

  • 应用程序级项目中的 AddIn 宿主项。此宿主项属性的默认名称为 Globals.ThisAddIn。

  • 使用功能区设计器自定义的项目中的所有功能区。可以使用 Globals.Ribbons 属性访问功能区。

  • Outlook 外接程序项目中的所有 Outlook 窗体区域。可以使用 Globals.FormRegions 属性访问窗体区域。

例如,您可以编写一段代码,当用户单击操作窗格上的按钮时,代码将在 Sheet1 上的 NamedRange 控件中插入文本,如下例所示。

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
    Handles Button1.Click

    If Globals.Sheet1 IsNot Nothing Then
        Globals.Sheet1.NamedRange1.Value2 = Me.TextBox1.Text
    End If

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

初始化 Globals 类

试图在文档或外接程序完全初始化之前使用 Globals 类的代码可能会引发运行时异常。例如,在声明类级变量时使用 Globals 可能会失败,因为在所声明的对象实例化之前 Globals 类可能没有使用对所有宿主项的引用进行初始化。

bhczd18c.alert_note(zh-cn,VS.90).gif说明:

Globals 类从不会在设计时初始化,但是控件实例是由设计器创建的。这意味着,如果创建调用 Globals 类的方法的用户控件,则在尝试访问该方法之前,必须编写代码检查该方法是否返回 null。

请参见

概念

在运行时访问功能区

在运行时访问窗体区域

宿主项和宿主控件概述

AddIn 宿主项

文档宿主项

工作簿宿主项

工作表宿主项

在 Office 解决方案中编写代码