Надстройки COM и автоматизированные надстройки Excel

Применимо к: Microsoft Office Excel 2007

Обзор


Microsoft Office Excel поддерживает надстройки автоматизации Кроме надстройки для модели компонентных объектов (COM). В этой статье описаны различия между этих двух типов надстройки.

Дополнительные сведения


Надстройки COM

COM-надстройки предоставить разработчику способ расширить функциональные возможности приложений Office для пользовательских задач. Надстройки COM обычно используются для автоматизации работы в ответ на щелчок кнопки панели команд, формы или диалогового окна или некоторые другие события, относящиеся к Excel, таких как открытие или закрытие книги или ввод данных на листах Excel. Функции надстройки COM не может вызываться непосредственно из формул в ячейках в листах.

COM-надстройка представляет собой сервер COM в процессе (ActiveX DLL), который должен реализовывать интерфейс 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. Чтобы сделать это, выполните следующие действия.
  1. В меню Вид выберите команду панели инструментов и выберите команду Настройка.
  2. В диалоговом окне панели инструментов перейдите на вкладку Дополнительно . В списке категории выберите Сервис. В списке команды найдите COM-надстройки и перетащите нужную команду в меню или панели команд по вашему выбору. Закройте окно инструментов .
  3. Выберите команду надстройки COM , добавленный для отображения в диалоговом окне « надстройки COM ». Диалоговое окно содержит список всех COM-надстройки, которые установлены на вашей системе и надстройки COM, загруженных в настоящий момент выбраны.
COM-надстройки можно загружать и выгружается посредством пользовательского интерфейса Excel. Чтобы сделать это, выполните следующие действия.
  1. Нажмите Кнопку Microsoft Office, а затем нажмите кнопку Параметры Excel.
  2. Нажмите кнопку Надстройки.
  3. В разделе Управлениевыберите команду надстройки COMи нажмите кнопку Перейти .

    В диалоговом окне « надстройки COM » перечислены все COM-надстройки, установленные на компьютере. Надстройки COM, загруженных в настоящий момент выбраны.
Дополнительные сведения о COM-надстройки щелкните следующий номер статьи базы знаний Майкрософт:
Методические УКАЗАНИЯ 238228 : построение Office 2000 надстройки COM в Visual Basic

Образец 230689 : Comaddin.exe Office 2000 надстройки COM в Visual C++

Дополнительные сведения см. ниже на веб-сайте корпорации Майкрософт:
Надстройки Office
http://support.microsoft.com/ofd

Автоматизированные надстройки

В дополнение к COM-надстройки Excel поддерживает сборки надстройки в автоматизации автоматизации которые запускаются добавить на COM-надстройки в том, что функции в автоматизации надстройки могут быть вызваны из формул на листах Microsoft Excel. COM-надстройки должны быть в процесс COM-серверов, которые поддерживают интерфейс IDTExtensibility2 ; Однако надстройки автоматизации может быть в процессе или out-of-process COM-серверов и реализации IDTExtensibility2 является необязательным.

Чтобы использовать функции из надстройки автоматизации Excel, выполните следующие действия:
  1. В меню Сервис выберите команду Надстройки.
  2. Нажмите Автоматизацияв диалоговом окне Надстройки . В списке зарегистрированных серверов COM выберите надстройки автоматизации и нажмите кнопку ОК.
  3. Надстройки автоматизации отображается в диалоговом окне « надстройки ». Нажмите кнопку ОК , чтобы закрыть диалоговое окно Add-Ins .
Чтобы использовать функции из автоматизированных надстроек в Excel 2007 и более поздних версиях, выполните следующие действия.
  1. Нажмите Кнопку Microsoft Office, а затем нажмите кнопку Параметры Excel.
  2. Нажмите кнопку Надстройки.
  3. В разделе Управлениевыберите пункт надстройки Excelи нажмите кнопку Перейти.
  4. Нажмите Автоматизацияв диалоговом окне Надстройки . В списке зарегистрированных серверов COM выберите команду надстройки автоматизации и нажмите кнопку ОК.

    Надстройки автоматизации отображается в диалоговом окне « надстройки ». Нажмите кнопку ОК , чтобы закрыть диалоговое окно Add-Ins .
При внесении дополнения в список в диалоговом окне Надстройки или при выборе и снятии надстройки в списке, Excel сохраняет изменения в реестре. Во-первых Microsoft 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"
Примечание: Изменение номера версии Microsoft Office на основе версии, которую вы используете.


Параметр /a, используемый в строковое значение старого и нового в Excel и используется специально для загрузки надстройки автоматизации. Все модели автоматизации надстройки загружаются по требованию; Нет нет параметра, можно изменить поведение загрузки надстройки автоматизации.

При снятии надстройки автоматизации, перечисленных в диалоговом окне « Надстройки » подраздел с именем, равным 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
Этот параметр реестра гарантирует, что даже в том случае, если вы решили не загружать надстройки автоматизации, которые были добавлены в список надстроек, сохраняются в списке.

Дополнительные сведения об автоматизации надстройки см. ниже статьях базы знаний Майкрософт:

285337 Практическое руководство: создание надстройки автоматизации Visual Basic для функции листа Excel

Дополнительные сведения см. ниже на веб-сайте корпорации Майкрософт:
Надстройки Office
http://support.microsoft.com/ofd

Автоматизированные надстройки, реализующие интерфейс IDTExtensibility2

Как упоминалось ранее надстройки автоматизации может реализовать интерфейс IDTExtensibility2, но это не требуется в порядке для вызова функций в надстройку из рабочего листа Excel. Если требуется надстройки автоматизации получает ссылку на экземпляр Excel, можно реализовать интерфейс IDTExtensibility2 и использовать параметр приложения OnConnection для автоматизации Excel.

Надстройки автоматизации, реализующий
IDTExtensibility2 могут быть загружены в интерфейсе пользователя Excel в диалоговом окне « Надстройки COM » и диалоговом окне « Надстройки ». Ниже описаны поведения автоматизации надстройки на основании она загружается в одном или обоих этих диалоговых окон.
  • Загрузить только в диалоговом окне « надстройки ».

    Надстройка загружается по требованию. Функции надстройки может вызываться из формул на листе.
  • Загрузить только в диалоговом окне « надстройки COM ».

    Надстройка загружается как надстройки COM и его поведение при загрузке определяется на основе параметров в реестре. Функции в окне не может вызываться из формул на листе.
  • Загружен в диалоговом окне « надстройки COM » и диалоговом окне « надстройки ».

    Два отдельных экземпляра надстройки загружаются. Один экземпляр загружается как надстройки COM и другого экземпляра будет загружен в виде надстройки автоматизации. Экземпляр надстройки COM использует режим загрузки указано в реестре; Загружает экземпляр надстройки автоматизации по требованию. Два экземпляра работают независимо друг от друга и не имеют глобальные переменные.
Поскольку надстройки автоматизации загружаются по требованию, Excel может попытаться загрузить надстройку, находящегося в режиме редактирования ячейки. Таким образом при разработке надстройки автоматизации, поддерживающий интерфейс IDTExtensibility2, должен быть осторожны, чтобы не предпринимать попытки изменить состояние программы Excel при загрузке надстройки. Дополнительные сведения см. ниже статьи базы знаний Майкрософт:
Ошибка 284876 : Excel происходит сбой надстройки автоматизации загрузки

(c) Корпорация Майкрософт, 2001, все права защищены. Взносы в Лори б. Тернер, корпорация Майкрософт.