Cómo ejecutar una macro de Word mientras se edita un objeto de Word en VB

Seleccione idioma Seleccione idioma
Id. de artículo: 116040 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Resumen

Este artículo proporciona tres ejemplos que muestran cómo ejecutar una macro de Word al modificar un objeto de Word en Visual Basic. Puede ejecutar una macro de Word directamente mediante el comando ToolsMacro porque no se puede ejecutar una macro de Word mientras está activado un objeto de Word en otra aplicación. Cuando intenta ejecutar el comando de Word ToolsMacro, estará haciendo lo mismo que eligiendo macro... del menú Herramientas de Word. Cuando actúa como servidor OLE en contexto, Word permite sólo aquellos elementos de menú que aplican al objeto que se está editando en la aplicación de contenedor OLE;... la macro elemento de menú no es uno de ellos.

Por ejemplo, si incrusta un objeto de Word en una publicación de Microsoft Publisher versión 2.0, Word sabe que no tendría sentido elija Guardar en el menú archivo en Word para guardar el objeto. Es el contenedor aplicación (publicador) responsabilidad para guardar sus propios documentos y todos los objetos en ellos. De hecho, cuando elige guardar en el menú archivo en Publisher mientras se edita un objeto de Word, Publisher guarda el objeto porque los objetos OLE no pueden poseer el menú archivo. Por lo tanto, los elementos de menú como ToolsMacro están deshabilitados.

Más información

A continuación hay tres ejemplos que muestran cómo ejecutar una macro de Word al modificar un objeto de Word en Visual Basic, incluso si no se puede utilizar el comando ToolsMacro. Los ejemplos de utilizar Word código, código de Visual Basic o ambos y supone que tiene una macro denominada macFormatFont.

Ejemplo 1: Colocar un botón en la barra de herramientas de Word

Puede colocar un botón en una barra de herramientas para representar la macro. A continuación, el usuario puede hacer clic en el botón para ejecutar la macro mientras el documento que están editando se está en la vista. Para crear un botón de la macro, siga estos pasos:
  1. Inicie Microsoft Word versión 6.0.
  2. Elija Personalizar... en el menú Herramientas.
  3. Presione ALT+T para seleccionar la ficha Barras de herramientas.
  4. En la lista Categorías, desplácese hacia abajo para macros y seleccione "Macros". Se mostrará una lista de macros a la derecha.
  5. Haga clic en el nombre de la macro (macFormatFont) y arrástrelo a una de las barras de herramientas fuera del cuadro de diálogo en la ventana principal de Word. Colóquela en la barra de herramientas. Se mostrará una selección de imágenes de botón.
  6. Haga clic en la imagen de botón que desee y elija asignar. A continuación, haga clic en el botón Cerrar.

Ejemplo dos: Llamar A un control de teclas asignadas en la macro de Word

Puede asignar una tecla de método abreviado a la macro. Esto permitirá que el programa y al usuario activar la macro con una tecla de método abreviado. Por ejemplo, puede asignar la tecla de método abreviado CTRL + MAYÚS + M a macFormatFont (vea Part One). A continuación, activarla con Visual Basic código desde un botón de comando procedimiento de evento click (consulte la segunda parte).

PART ONE: pasos para asignar las teclas de Word:

  1. Inicia Microsoft Word versión 6.0 para Windows.
  2. Elija Personalizar... en el menú Herramientas.
  3. Presione ALT+K para seleccionar la ficha teclado.
  4. En la lista Categorías, desplácese hacia abajo para macros y seleccione "Macros". Se mostrará una lista de macros a la derecha.
  5. Seleccione el nombre de la macro (macFormatFont).
  6. Presione ALT+N para ir al cuadro presione teclas nuevo.
  7. Presione CTRL + MAYÚS + M para crear la clave de acceso directo.
  8. Seleccione asignar para asignar la tecla.
PARTE TWO--pasos para llamar a la clave de acceso directo desde Visual Basic:
  1. Inicie un proyecto nuevo de Visual Basic. Se creará Form1 de manera predeterminada.
  2. Agregue un botón de comando (Command1) y un control de OLE 2.0 (OLE1) a Form1.
  3. Seleccione el crear en la opción de archivo en la ventana Insertar objeto. A continuación, elija el botón Examinar y busque un documento. A continuación, seleccione la opción de mostrar como icono y elija el botón Aceptar.
  4. Agregue el código siguiente al procedimiento de evento Command1_Click:
          Sub Command1_Click()
             Ole1.action = 7
             SendKeys "^+M"
          End Sub
    					
  5. Ejecute la aplicación y haga clic en el botón Command1 para ejecutar la macro en el documento al ver y editar el documento en Visual Basic.

Ejemplo 3: Llamar A la macro principal que llama a las otras macros

En este ejemplo crea una macro principal que controla los demás. Lee un archivo que le indica que se ejecute la macro. A continuación, ejecute esa macro. Desde el lado Visual Basic, Visual Basic crea el archivo que indica la macro principal que se ejecute la macro. A continuación, la macro se ejecuta cuando el usuario presiona la tecla de método abreviado (CTRL + MAYÚS + M) asignada.

Este ejemplo tiene dos partes. Parte uno proporciona el código para la macro principal y sub-macros en Word. Parte dos proporciona el código de Visual Basic.

PART ONE: principal macro en Word presionando CTRL + MAYÚS + M ejecución:

  1. Inicia Microsoft Word versión 6.0 para Windows.
  2. Elija macro... en el menú de herramientas. El nombre de la macro principal y elija el botón Crear.
  3. Agregue el código siguiente a la macro principal:
       Sub MAIN
          Open "C:\MACRO.DAT" for input as #1
          line input #1,a$
          Close #1
          Kill "C:\MACRO.DAT"
          Select case a$
             Case "macro1": call macro1
             Case "macro2": call  macro2
          End select
       End Sub
    					
  4. Elija macro... en el menú de herramientas. El nombre de la macro Macro1 y elija el botón Crear.
  5. Agregue el código siguiente a la macro Macro1:
       Sub MAIN
          msgbox "Successful run of macro1"
       End Sub
    					
  6. Elija macro... en el menú de herramientas. El nombre de la macro Macro2 y elija el botón Crear.
  7. Agregue el código siguiente a la macro Macro2:
       Sub MAIN
          msgbox "Successful run of macro2"
       End Sub
    					
  8. Cierre y guarde cada una de estas macros globales.
PARTE TWO: código de Visual Basic:
  1. Inicie un proyecto nuevo de Visual Basic. Se creará Form1 de manera predeterminada.
  2. Agregue un botón de comando (Command1) y un control de OLE 2.0 (OLE1) a Form1.
  3. Seleccione el crear en la opción de archivo en la ventana Insertar objeto. A continuación, elija el botón Examinar y busque un documento. A continuación, seleccione la opción de mostrar como icono y elija el botón Aceptar.
  4. Agregue el código siguiente al procedimiento de evento Command1_Click:
       Sub Command1_Click()
          Open "C:\MACRO.DAT" for output as #1
          Print #1,"macro1"
          Close #1
          ole1.action = 7
          SendKeys ("^+M") ' This shortcut key must be assigned to Main macro
       End Sub
  5. Ejecute la aplicación. Haga clic en el botón Command1 para que se ejecute el principal macro, que a su vez ejecuta la macro con la tecla de método abreviado ya asignada.

Referencias

Para obtener más información sobre este tema, consulte en contacto con el siguiente artículo en Microsoft Knowledge Base:
106282Elementos de Word disponibles cuando Word 6.0 está en modo de Server

Propiedades

Id. de artículo: 116040 - Última revisión: miércoles, 09 de marzo de 2005 - Versión: 3.3
La información de este artículo se refiere a:
  • Microsoft Visual Basic 3.0 Professional Edition
  • Microsoft Visual Basic 3.0 Professional Edition
  • Microsoft Word 6.0 Standard Edition
Palabras clave: 
kbmt kbhowto kbnoupdate KB116040 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 116040
Renuncia a responsabilidad de los contenidos de la KB sobre productos a los que ya no se ofrece asistencia alguna
El presente artículo se escribió para productos para los que Microsoft ya no ofrece soporte técnico. Por tanto, el presente artículo se ofrece "tal cual" y no será actualizado.

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