Complementos COM y complementos de automatización de Excel

Se aplica a: Microsoft Office Excel 2007

Resumen


Microsoft Office Excel admite automatización Add-ins, además de los complementos de modelo de objetos componentes (COM). Este artículo explica las diferencias entre estos dos tipos de complementos.

Más información


Complementos COM

Complementos COM ofrecen al desarrollador una manera de ampliar la funcionalidad de las aplicaciones de Office para tareas personalizadas. Complementos COM normalmente se utilizan para automatizar Excel en respuesta a un clic de un botón CommandBar, un formulario o cuadro de diálogo o algún otro evento específico de Excel, como abrir o cerrar libros o introducir datos en hojas de cálculo. Funciones COM Add-in no pueden llamarse directamente desde fórmulas de celdas en hojas de cálculo.

Un COM Add-in es un servidor COM en proceso (una DLL de ActiveX) que debe implementar la interfaz IDTExensibility2. Todos los complementos COM deben implementar cada uno de los cinco métodos de esta interfaz: OnConnection, OnAddinsUpdate, OnStartupComplete, OnBeginShutDowny OnDisconnection.

Cuando un COM Add-in está instalado en el sistema del usuario, se crean las entradas del registro para el complemento. Además de registro normal de COM, un COM Add-in se registra para cada aplicación de Office en el que se ejecuta. Complementos COM utilizado por Excel se registran en la clave del registro siguiente:

HKEY_CURRENT_USER\Software\Microsoft\Office\Excel\Addins\
Esta clave contiene una subclave para cada instalado COM Add-in. El nombre de la subclave es el ProgID de COM Add-in. La subclave para un COM Add-in también contiene valores que describen el nombre descriptivo de COM Add-in, descripción y comportamiento de carga. El comportamiento de carga describe cómo el complemento se carga en Excel: cargar al inicio, cargado en el próximo inicio, carga a petición o no cargado.

Complementos COM también pueden cargarse y descargarse a través de la interfaz de usuario de Excel. Para ello, siga estos pasos:
  1. En el menú Ver , elija barras de herramientas y, a continuación, haga clic en Personalizar.
  2. En el cuadro de diálogo barras de herramientas , haga clic en la ficha Opciones avanzadas . En la lista de categorías, seleccione Herramientas. Busque complementos COM en la lista de comandos y arrastre el comando a un menú o CommandBar de su elección. Cierre el cuadro de diálogo barras de herramientas .
  3. Haga clic en el comando complementos COM que agregó para mostrar el cuadro de diálogo complementos COM . El cuadro de diálogo muestra todos los complementos COM instalados en su sistema, y se seleccionan los complementos COM que están cargados actualmente.
Complementos COM también pueden cargarse y descargarse a través de la interfaz de usuario de Excel. Para ello, siga estos pasos:
  1. Haga clic en el botón de Microsoft Office y, a continuación, haga clic en Opciones de Excel.
  2. Haga clic en Complementos.
  3. En Administrar, haga clic en complementos COMy, a continuación, haga clic en Ir .

    El cuadro de diálogo complementos muestra todos los complementos COM instalados en el equipo. Se seleccionan los complementos COM que están cargados actualmente.
Para obtener información adicional acerca de complementos COM, haga clic en los números de artículo siguientes para verlos en Microsoft Knowledge Base:
238228 HOWTO: crear un Office 2000 complemento COM en Visual Basic

230689 ejemplo: Comaddin.exe Office 2000 complemento COM escrito en Visual C++

Para obtener más información, consulte el siguiente sitio Web de Microsoft:
Complementos de Office
http://support.microsoft.com/ofd

Complementos de automatización

Además de complementos COM, Excel admite generación de complementos de automatización de complementos automatización COM Add-ins en que las funciones de complementos de automatización pueden llamarse desde fórmulas en hojas de cálculo de Excel. Complementos COM deben ser servidores COM en proceso que admiten la interfaz IDTExtensibility2 ; Sin embargo, los complementos de automatización pueden ser servidores COM en proceso o fuera de proceso y la implementación de IDTExtensibility2 es opcional.

Para utilizar las funciones de un complemento de automatización de Excel, siga estos pasos:
  1. En el menú Herramientas, haga clic en Complementos.
  2. En el cuadro de diálogo Complementos , haga clic en automatización. En la lista de servidores COM registrados, seleccione el complemento de automatización y haga clic en Aceptar.
  3. El complemento de automatización aparece en el cuadro de diálogo Add-ins . Haga clic en Aceptar para cerrar el cuadro de diálogo Add-Ins .
Para utilizar las funciones de un complemento de automatización en Excel 2007 y versiones más recientes, siga estos pasos:
  1. Haga clic en el botón de Microsoft Office y, a continuación, haga clic en Opciones de Excel.
  2. Haga clic en Complementos.
  3. En Administrar, haga clic en complementos de Excely, a continuación, haga clic en Ir.
  4. En el cuadro de diálogo Complementos , haga clic en automatización. En la lista de servidores COM registrados, haga clic en el complemento de automatización y, a continuación, haga clic en Aceptar.

    El complemento de automatización aparece en el cuadro de diálogo Add-ins . Haga clic en Aceptar para cerrar el cuadro de diálogo Add-Ins .
Cuando se realizan adiciones a la lista en el cuadro de diálogo Add-Ins o cuando Active y desactive los complementos en la lista, Excel almacena los cambios en el registro. En primer lugar, Excel utiliza el siguiente valor del registro para determinar si está o no está cargado un complemento de automatización en la lista:
 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"
Nota: Cambiar el número de versión de Office en función de la versión que está utilizando.


El modificador /A que se utiliza en el valor de cadena es antigua y nueva de Excel y se utiliza específicamente para cargar complementos de automatización. Todos los complementos de automatización se cargan a petición; No hay ninguna opción que se puede cambiar el comportamiento de carga de un complemento de automatización.

Cuando se desactiva un complemento de automatización que aparece en el cuadro de diálogo Complementos , se crea una subclave con un nombre igual al ProgID del complemento en la siguiente clave del registro:
 

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
Este valor del registro garantiza que los complementos de automatización que ha agregado a la lista de complementos se conservan en la lista incluso cuando ha elegido no cargarlos.

Para obtener más información acerca de automatización de complementos, consulte los artículos siguientes en Microsoft Knowledge Base:

285337 HOWTO: crear un complemento de automatización de Visual Basic para funciones de hoja de cálculo de Excel

Para obtener más información, consulte el siguiente sitio Web de Microsoft:
Complementos de Office
http://support.microsoft.com/ofd

Complementos de automatización que implementan IDTExtensibility2

Como se mencionó anteriormente, un complemento de automatización puede implementar IDTExtensibility2, pero no es necesario en orden para llamar a las funciones en el complemento de una hoja de cálculo en Excel. Si necesita que el complemento de automatización Obtiene una referencia a la instancia de Excel, puede implementar IDTExtensibility2 y utilizar el parámetro de aplicación de OnConnection para automatizar Excel.

Un complemento de automatización que implementa
IDTExtensibility2 se pueden cargar en la interfaz de usuario de Excel mediante el cuadro de diálogo Complementos COM y el cuadro de diálogo Add-Ins . El siguiente describe el comportamiento de un complemento de automatización basándose en si está cargado en uno o ambos de estos cuadros de diálogo:
  • Cargar sólo en el cuadro de diálogo Add-ins .

    El complemento se carga a petición. Funciones en el complemento pueden llamarse desde fórmulas en una hoja de cálculo.
  • Cargar sólo en el cuadro de diálogo complementos COM .

    El complemento se carga como un COM Add-in y se determina su comportamiento de carga de configuración en el registro. Funciones de complemento no pueden llamarse desde fórmulas en una hoja de cálculo.
  • Cargar en el cuadro de diálogo complementos COM y el cuadro de diálogo Add-ins .

    Se cargan dos instancias independientes del complemento. Una instancia se carga como un COM Add-in y la otra instancia se carga como un complemento de automatización. La instancia COM Add-in utiliza el comportamiento de carga indicado en el registro; la instancia del complemento de automatización carga a petición. Las dos instancias funcionan independientemente uno del otro y no comparten las variables globales.
Dado que los complementos de automatización se cargan a petición, Excel puede intentar cargar el complemento mientras está en modo de edición de la celda. Por lo tanto, al desarrollar un complemento de automatización que admita IDTExtensibility2, debe ser cuidado de no hacer nada que intenta cambiar estado de Excel mientras se carga el complemento. Para obtener más información, consulte el artículo siguiente en Microsoft Knowledge Base:
ERROR 284876 : se produce un error de Excel al complemento de automatización carga

(c) Microsoft Corporation 2001, Reservados todos los derechos. Colaboración de Lori B. Turner, Microsoft Corporation.