对 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 类可能没有使用对所有宿主项的引用进行初始化。
说明: |
---|
Globals 类从不会在设计时初始化,但是控件实例是由设计器创建的。这意味着,如果创建调用 Globals 类的方法的用户控件,则在尝试访问该方法之前,必须编写代码检查该方法是否返回 null。 |