Cómo crear complementos COM de Office mediante VBA y Office Developer

Seleccione idioma Seleccione idioma
Id. de artículo: 306130 - Ver los productos a los que se aplica este artículo
Este artículo se publicó anteriormente con el número E306130
Expandir todo | Contraer todo

En esta página

Resumen

En este artículo se describe cómo mostrar un UserForm que da la bienvenida al iniciar Microsoft Excel o Microsoft Word. El complemento Modelo de objetos componentes (COM) proporciona un medio de centralizar código común en una biblioteca de vínculos dinámicos (DLL) compilada que se pueda implementar fácilmente en cualquier aplicación de Office (por ejemplo, puede tener acceso a los contactos de Microsoft Outlook desde Excel, Word y Microsoft Access). La forma más sencilla de desarrollar una DLL COM en Microsoft Office es trabajar con un proyecto de complemento, que proporciona un diseñador y una referencia a la biblioteca IDTExtensibility2.

Requisitos

En el presente artículo se da por supuesto que está familiarizado con los temas siguientes:

  • Crear procedimientos de Visual Basic para Aplicaciones (VBA) en una aplicación de Office XP.
  • Trabajar con UserForms en VBA.
  • Personalizar barras de herramientas de Office XP.

Crear un proyecto de complemento

Puede crear un proyecto de complemento en cualquier aplicación de Microsoft Office 2000 o Microsoft Office XP si tiene instaladas las herramientas de Microsoft Office Developer 2000 o Microsoft Office XP Developer. En este ejemplo se usa Microsoft Word 2002.
  1. Inicie Microsoft Word 2002.
  2. En el menú Herramientas, seleccione Macro y haga clic en Editor de Visual Basic.
  3. En el Editor de Visual Basic (VBE), haga clic en Nuevo proyecto en el menú Archivo.
  4. En el cuadro de diálogo Nuevo proyecto, haga clic en Proyecto de complemento. De esta forma se proporciona automáticamente un diseñador de complementos.
  5. Si la ventana Propiedades no está visible, haga clic en Ventana Propiedades en el menú Ver.
  6. En la ventana Propiedades, cambie el nombre del proyecto AddInDesigner1 por WelcomeAddIn.
  7. En el menú Insertar, haga clic en UserForm para insertar un UserForm.
  8. En el cuadro de herramientas, agregue una etiqueta y un botón de comando al UserForm.
  9. En la ventana Propiedades, cambie los atributos de los controles para que coincidan con los valores en la tabla siguiente:
    Contraer esta tablaAmpliar esta tabla
    ControlPropiedadesValor
    LabelNamelblMessage
    CaptionWelcome
    Font14pt
    AutoSizeTrue
    CommandButtonNamecmdOK
    CaptionOK
    UserFormNamefrmWelcome

  10. En el menú Insertar, haga clic en Module para insertar un módulo estándar.
  11. Agregue la siguiente declaración de variable de cadena global al módulo estándar:
    Public gstrUserName As String 'Esta variable se usará para almacenar el nombre del usuario según se define 'en los cuadros de diálogos Opciones (del menú Herramientas) en Word y Excel.
    					
  12. En el módulo, agregue el código siguiente para crear un procedimiento Sub público denominado DisplayForm para mostrar el formulario en la pantalla:
    Public Sub DisplayForm() frmWelcome.Show vbModal End Sub
    					
  13. Vea la ventana de código del formulario frmWelcome y agregue el código siguiente al evento UserForm_Initialize para concatenar el título de la etiqueta con la variable de cadena:
    lblMessage.Caption = lblMessage.Caption & " " & gstrUserName
    					
  14. Agregue el código siguiente al evento Click del CommandButton cmdOK para descargar el formulario:
    Unload me
    					

Cambiar las propiedades del diseñador de complementos

Siga estos pasos para cambiar las propiedades del diseñador y que el complemento se inicie en cuanto se inicia Microsoft Excel:
  1. En el Explorador de proyectos, haga doble clic en el componente para volver al diseñador de complementos.
  2. En la ficha General del diseñador, cambie las propiedades del diseñador para que coincidan con los valores de la tabla siguiente:
    Contraer esta tablaAmpliar esta tabla
    PropiedadValor
    Nombre para mostrar del complementoFunFormMessage
    Descripción del complementoContiene código específico de Excel
    AplicaciónMicrosoft Excel
    Versión de la aplicaciónMicrosoft Excel 10.0
    Comportamiento inicial de cargaInicio

Implementar los eventos IDTExtensibility2

  1. En el menú Ver, haga clic en Código para ver el módulo de código que subyace al diseñador.
  2. En el menu Herramientas, haga clic en Referencias y establezca una referencia a la Biblioteca de objetos de Microsoft Excel.
  3. En la lista desplegable Objeto, haga clic en AddinInstance. En la lista desplegable Procedimiento, haga clic en OnConnection.

    Este evento es útil para crear un botón CommandBar o asociar código a un evento, por ejemplo de aplicación, cuando el complemento se conecta a la aplicación host.
  4. Agregue el código siguiente al procedimiento del evento AddinInstance_OnConnection para almacenar el nombre de usuario en la variable global strUserName y llamar al procedimiento DisplayForm:
    gstrUserName = Application.UserName DisplayForm
    					
  5. En el VBE, haga clic en Guardar y asigne al proyecto el nombre Welcome.vba.

Agregar un segundo diseñador

En este procedimiento agrega un segundo diseñador para implementar la misma funcionalidad en Microsoft Word.
  1. Cree otro proyecto de complemento en el VBE. Se creará AddInProject2 de forma predeterminada.
  2. En el Explorador de proyectos, agregue la nueva interfaz del diseñador de complementos (AddInDesigner1) a su proyecto de complemento. Habrá dos diseñadores en el proyecto.
  3. En el Explorador de proyectos, haga clic con el botón secundario del mouse en AddInProject2 y haga clic en Cerrar proyecto para quitar el proyecto recién creado.
  4. Cuando reciba el mensaje siguiente o uno similar
    Se ha modifcado el proyecto AddInProject2. ¿Desea guardarlo?
    haga clic en No.
  5. Cambie las propiedades del diseñador para especificar Word 10 como aplicación de destino y cargar en el Inicio.
  6. Agregue el código siguiente al nuevo procedimiento del evento AddinInstance_OnConnection del diseñador de Word, que es el mismo que el código escrito anteriormente para el evento OnConnection del diseñador de Excel:
    gstrUserName = Application.UserName DisplayForm
    					

Depurar el complemento

  1. Si lo prefiere, agregue puntos de interrupción al código.
  2. En el Editor de Visual Basic (VBE), haga clic en Ejecutar proyecto en el menú Ejecutar para ejecutar el complemento.
  3. Inicie Microsoft Excel. Cuando el proyecto se inicia, puede ver un cuadro de diálogo para el diseñador de complementos. Haga clic en la opción para iniciar una aplicación y vaya a Excel.exe. Si este cuadro de diálogo no aparece, haga clic en Inicio, seleccione Programas y haga clic en Microsoft Excel para iniciar Excel. Debería aparecer su UserForm.
  4. Si el Administrador de complementos COM ya no está disponible, agregue el comando Complementos COM a una barra de herramientas de la forma siguiente:
    1. En el menú Herramientas, haga clic en Personalizar.
    2. En el cuadro de diálogo Personalizar, en la ficha Comandos, arrastre el comando Complementos COM desde la categoría Herramientas a una barra de herramientas o al objeto CommandBarPopup del menú Herramientas.
  5. Haga clic en la barra de comandos Complementos COM para mostrar el Administrador de complementos COM (CAM). La lista del CAM muestra todos los complementos cargados.
  6. Para probar el evento OnConnection, desactive la casilla del complemento Bienvenida en el CAM y haga clic en Aceptar. Vuelva a mostrar el CAM, active la casilla Bienvenida y, a continuación, haga clic en Aceptar. Debería volver a aparecer el UserForm.
  7. Cierre la aplicación host (Word o Excel) y haga clic en Detener proyecto en el menú Ejecutar de VBE para detener la ejecución del proyecto.

Comprobar que el complemento funciona

Ahora puede compilar el complemento y comprobar que funciona en otro equipo.
  1. Guarde el proyecto en el VBE. Se trata de la versión modificable. El estado compilado no permite hacer modificaciones.
  2. En el menú Archivo, haga clic en Crear Welcome.DLL.
  3. Utilice el comando regsvr32 para registrar la DLL de la forma siguiente:
    1. En el menú Inicio de Windows, haga clic en Ejecutar.
    2. En el cuadro de texto Abrir, escriba el texto siguiente:
      regsvr32 <rutaDeAcceso>\Welcome.DLL
      donde <rutaDeAcceso> es la ruta de acceso del sistema de archivos para la DLL.
  4. Haga clic en Aceptar para confirmar el registro de la DLL.
  5. Ejecute Excel o Word. Debería aparecer su UserForm. Si no ve su UserForm, haga clic en Complementos COM en el menú Herramientas y active la casilla Bienvenida.
NOTA
La forma más fácil de distribuir la DLL es utilizar el Asistente de empaquetado y distribución.

Solucionar problemas

  • Asegúrese de escribir código breve y eficiente para cuando el complemento se cargue en memoria. Por ejemplo, si el evento OnConnection trata los datos de la base de datos al inicio, los usuarios pensarán que el equipo ha dejado de responder.
  • Tenga cuidado al utilizar UserForms. Si el usuario hace clic en la aplicación host, puede pensar que ha perdido el formulario ya que éste se oculta detrás de ella. En cambio, haga que sus formularios sean modales para superar este problema. Para hacer un formulario modal, use la constante vbModal de la forma siguiente:
    frmMyUserForm.Show vbModal
    						
    Para ver dónde encaja este código en la referencia de este ejemplo, vea el código del paso 12 de la sección Crear un proyecto de complemento.

Referencias

Consulte la carpeta \Samples\Working with AddIns\VBA_COM_AddIn en el CD de Office XP Developer para obtener la plantilla AddIn.

Para obtener información adicional acerca de cómo crear botones CommandBar, visite el siguiente sitio Web de Microsoft Developer Network (MSDN):
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/modcore/html/deovrCreatingCommandBar.asp
Para obtener información acerca de cómo diseñar un complemento de Outlook, visite MSDN Code Center en el siguiente sitio Web de MSDN:
http://msdn.microsoft.com/code/default.asp?url=/msdn-files/026/000/118/massmail_design_htm.asp

Propiedades

Id. de artículo: 306130 - Última revisión: martes, 26 de diciembre de 2006 - Versión: 4.1
La información de este artículo se refiere a:
  • Microsoft Office XP Developer Edition
  • Microsoft Office XP Professional
Palabras clave: 
kbhowtomaster KB306130

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com