Поделиться через


Глобальный доступ к объектам в проектах Office

При создании проекта Office Visual Studio автоматически создает в проекте класс с именем Globals . Класс Globals можно использовать для доступа к различным элементам проекта из любого кода проекта в среде выполнения.

Область применения. Сведения в этом разделе относятся к проектам уровня документа и проектам надстроек VSTO. См. сведения о функциях, доступных по Приложение Office и типу проекта.

Использование класса Globals

Globals является статическим классом, содержащим ссылки на определенные элементы проекта. С помощью класса Globals разработчик может обращаться к следующим элементам из любого кода проекта в среде выполнения:

  • Классы ThisWorkbook и Sheetn в книге Excel или проекте шаблона. Доступ к этим объектам осуществляется с помощью свойств Globals.ThisWorkbook и Sheetn .

  • Класс ThisDocument в документе Word или проекте шаблона. Доступ к этому объекту осуществляется с помощью свойства Globals.ThisDocument .

  • Класс ThisAddIn в проекте надстройки VSTO. Доступ к этому объекту осуществляется с помощью свойства Globals.ThisAddIn .

  • Все ленты проекта, настроенные с использованием конструктора лент. Доступ к лентам осуществляется с помощью свойства Globals.Ribbons . Дополнительные сведения см. в статье "Доступ к ленте во время выполнения".

  • Все области формы Outlook в проекте надстройки VSTO для Outlook. Доступ к областям формы осуществляется с помощью свойства Globals.FormRegions . Дополнительные сведения см. в разделе "Доступ к области формы" во время выполнения.

  • Объект фабрики, позволяющий создавать элементы управления лентой и элементы узла во время выполнения в проектах, предназначенных для платформа .NET Framework 4 или платформа .NET Framework 4.5. Доступ к этому объекту осуществляется с помощью свойства Globals.Factory . Этот объект представляет собой экземпляр класса, который реализует один из следующих интерфейсов:

    Например, свойство Globals.Sheet1 позволяет вставлять текст в элемент управления NamedRange на листе Sheet1 , когда пользователь нажимает кнопку на панели действий в проекте уровня документа для Excel.

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

Код, который пытается использовать Globals класс перед инициализацией документа или надстройки VSTO, может вызвать исключение времени выполнения. Например, использование класса Globals при объявлении переменной уровня класса может привести к сбою, потому что класс Globals может не инициализироваться со ссылками на все ведущие элементы перед созданием объявленного объекта.

Примечание.

Класс Globals никогда не инициализируется во время разработки, но экземпляры элементов управления создаются разработчиком. Это означает, что при создании пользовательского элемента управления, использующего свойство класса внутри класса пользовательского Globals элемента управления, необходимо проверка, возвращает ли свойство значение NULL, прежде чем пытаться использовать возвращаемый объект.