Аннотация
Microsoft Office Excel поддерживает надстройки службы автоматизации в дополнение к надстройкам COM. В этой статье объясняются различия между этими двумя типами надстроек.
Дополнительная информация
Надстройки COM
Надстройки COM позволяют разработчику расширить функциональные возможности приложений Office для пользовательских задач. Надстройки COM обычно используются для автоматизации Excel в ответ на нажатие кнопки CommandBar, форму или диалоговое окно или другие события, характерные для Excel, такие как открытие или закрытие книг или ввод данных на листах. Функции надстройки COM нельзя вызывать напрямую из формул ячеек на листах.
Надстройка COM — это внутрипроцессный COM-сервер (библиотека DLL ActiveX), который должен реализовывать интерфейс IDTExensibility2. Все надстройки COM должны реализовывать каждый из пяти методов этого интерфейса: OnConnection, OnStartupComplete, OnAddinsUpdate, OnBeginShutDown и OnDisconnection. При установке надстройки COM в системе пользователя для надстройки создаются записи реестра. Помимо обычной регистрации COM, надстройка COM регистрируется для каждого приложения Office, в котором она выполняется. Надстройки COM, используемые Excel, регистрируются в следующем разделе реестра:
HKEY_CURRENT_USER\Software\Microsoft\Office\Excel\Addins\
Этот раздел содержит подраздел для каждой установленной надстройки COM. Имя подраздела — ProgID для надстройки COM. Подраздел для надстройки COM также содержит значения, описывающие понятное имя, описание и поведение загрузки надстройки COM. Поведение загрузки описывает, как надстройка загружается в Excel: загружается при запуске, загружается только при следующем запуске, загружается по запросу или не загружается.
Надстройки COM также можно загружать и выгружать с помощью пользовательского интерфейса Excel. Для этого выполните следующие действия:-
В меню Вид наведите указатель мыши на пункт Панели инструментов и нажмите кнопку Настроить.
-
В диалоговом окне Панели инструментов перейдите на вкладку Дополнительно. В списке категорий выберите Сервис. Найдите надстройки COM в списке команд и перетащите команду в меню или панель команд по своему выбору. Закройте диалоговое окно Панели инструментов.
-
Щелкните добавленную команду НАДСТРОЙКИ COM, чтобы открыть диалоговое окно Надстройки COM. В диалоговом окне перечислены все надстройки COM, установленные в системе, и выбраны загруженные в данный момент надстройки COM.
Надстройки COM также можно загружать и выгружать с помощью пользовательского интерфейса Excel. Для этого выполните следующие действия:
-
Нажмите кнопку Microsoft Office, затем нажмите кнопку Параметры Excel.
-
Выберите пункт Надстройки.
-
В разделе Управление щелкните Com Add ins (Добавить COM), а затем нажмите кнопку Перейти .
В диалоговом окне Надстройки COM перечислены все надстройки COM, установленные на компьютере. Выбраны надстройки COM, которые сейчас загружены.
Дополнительные сведения см. на следующем веб-сайте Майкрософт:
Надстройки службы автоматизации
Помимо надстроек COM, Excel поддерживает надстройки службы автоматизации. Надстройки службы автоматизации создаются на основе надстроек COM в том, что функции в надстройках службы автоматизации можно вызывать из формул на листах Excel. Надстройки COM должны быть внутрипроцессными COM-серверами, поддерживающими интерфейс IDTExtensibility2; Однако надстройки службы автоматизации могут быть внутрипроцессными или внепроцессными COM-серверами, а реализация IDTExtensibility2 необязательна.
Чтобы использовать функции из надстройки службы автоматизации в Excel, выполните следующие действия.-
В меню Сервис выберите надстройки.
-
В диалоговом окне Add-Ins щелкните Автоматизация. В списке зарегистрированных COM-серверов выберите свою надстройку службы автоматизации и нажмите кнопку ОК.
-
Надстройка службы автоматизации появится в диалоговом окне Надстройки. Нажмите кнопку ОК, чтобы закрыть диалоговое окно Add-Ins.
Чтобы использовать функции из надстройки службы автоматизации в Excel 2007 и более поздней версии, выполните следующие действия.
-
Нажмите кнопку Microsoft Office, затем нажмите кнопку Параметры Excel.
-
Выберите пункт Надстройки.
-
В разделе Управление щелкните Excel Add ins (Добавить в Excel), а затем нажмите кнопку Перейти.
-
В диалоговом окне Надстройки щелкните Автоматизация. В списке зарегистрированных COM-серверов щелкните надстройку службы автоматизации и нажмите кнопку ОК.
Надстройка службы автоматизации появится в диалоговом окне Надстройки . Нажмите кнопку ОК , чтобы закрыть диалоговое окно Надстройки .
При добавлении списка в диалоговом окне Add-Ins или при выборе и удалении надстроек в списке Excel сохраняет изменения в реестре. Во-первых, Excel использует следующий параметр реестра, чтобы определить, загружена ли надстройка службы автоматизации в списке надстроек:
Excel 2002
Key: HKEY_CURRENT_USER\Software\Microsoft\Office\10.0\Excel\Options
String: OPENx
Sample Value: /A "ServerName.ClassName"
Excel 2003
Key: HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel\Options
String: OPENx
Sample Value: /A "ServerName.ClassName"
Excel 2007
Key: HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Excel\Options
String: OPENx
Sample Value: /A "ServerName.ClassName"
Примечание. Измените номер версии Office в зависимости от используемой версии.
Параметр /A, используемый в строковом значении, является новым для Excel и более ранних версий и используется специально для загрузки надстроек службы автоматизации. Все надстройки службы автоматизации загружаются по запросу; Нет параметра, который может изменить поведение нагрузки для надстройки службы автоматизации. При очистке надстройки службы автоматизации, указанной в диалоговом окне Add-Ins, в следующем разделе реестра создается подраздел с именем ProgID надстройки:HKEY_CURRENT_USER\Software\Microsoft\Office\10.0\Excel\Add-in Manager Excel 2003: HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel\Add-in Manager HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel\Add-in Manager Этот параметр реестра гарантирует, что надстройки службы автоматизации, добавленные в список надстроек, будут сохранены в списке, даже если вы решили не загружать их. Дополнительные сведения см. на следующем веб-сайте Майкрософт:
Надстройки автоматизации, реализующие IDTExtensibility2
Как упоминалось ранее, надстройка службы автоматизации может реализовать IDTExtensibility2, но она не требуется для того, чтобы Excel вызывал функции надстройки с листа. Если требуется, чтобы надстройка службы автоматизации могла получить ссылку на экземпляр Excel, можно реализовать IDTExtensibility2 и использовать параметр Приложения OnConnection для автоматизации Excel.
Надстройка службы автоматизации, реализующая IDTExtensibility2 можно загрузить в пользовательский интерфейс Excel с помощью диалогового окна COM Add-Ins и диалогового окна Add-Ins. Ниже описывается поведение надстройки службы автоматизации в зависимости от того, загружается ли она в одном или обоих из этих диалоговых окон.-
Загружается только в диалоговом окне Надстройки.
Надстройка загружается по запросу. Функции в надстройке могут вызываться из формул на листе. -
Загружается только в диалоговом окне Надстройки COM.
Надстройка загружается как надстройка COM, и ее поведение загрузки определяется из параметров в реестре. Функции в надстройке не могут вызываться из формул на листе. -
Загружается как в диалоговом окне НАДСТРОЙКИ COM, так и в диалоговом окне Надстройки.
Загружаются два отдельных экземпляра надстройки. Один экземпляр загружается как надстройка COM, а другой — как надстройка службы автоматизации. Экземпляр надстройки COM использует поведение нагрузки, указанное в реестре; Экземпляр надстройки службы автоматизации загружается по запросу. Эти два экземпляра работают независимо друг от друга и не совместно используют глобальные переменные.
Так как надстройки службы автоматизации загружаются по запросу, Excel может попытаться загрузить надстройку, пока она находится в режиме редактирования ячеек. Поэтому при разработке надстройки службы автоматизации, поддерживающей IDTExtensibility2, следует не предпринимать никаких попыток изменить состояние Excel во время загрузки надстройки. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:
284876 ОШИБКА: сбой Excel при загрузке Add-In автоматизации (c) Microsoft Corporation 2001, All Rights Reserved. Материалы Лори Б. Тернер, Корпорация Майкрософт.