Cómo agregar un botón a un documento de Word y asignar el evento click en tiempo de ejecución
Resumen
En este artículo se explica cómo se puede usar una macro de Microsoft Visual Basic para aplicaciones para agregar mediante programación un control a un documento de Microsoft Word y agregar un controlador de eventos click para dicho control.
Más información
Los pasos siguientes muestran cómo se puede crear una macro de Word que agregará un control a un documento y asignará el evento click de ese control en tiempo de ejecución. Los pasos son para Word. Sin embargo, puede aplicar los mismos conceptos para manipular mediante programación los controles de los libros de Microsoft Excel.
Nota
La capacidad de manipular el proyecto de Visual Basic de un documento de Microsoft Office en tiempo de ejecución requiere una referencia a la biblioteca de extensibilidad de Microsoft Visual Basic para aplicaciones.
Pasos para crear el ejemplo
Inicie un nuevo documento en Word.
Presione Alt + F11 para ir al editor de Visual Basic.
En el menú Herramientas, haga clic en Referencias.
Seleccione la referencia de la extensibilidad de Microsoft Visual Basic para aplicaciones.
Inserte un nuevo módulo y, a continuación, agregue el siguiente ejemplo de código.
Sub Test() 'Add a command button to a new document Dim doc As Word.Document Dim shp As Word.InlineShape Set doc = Documents.Add Set shp = doc.Content.InlineShapes.AddOLEControl(ClassType:="Forms.CommandButton.1") shp.OLEFormat.Object.Caption = "Click Here" 'Add a procedure for the click event of the inlineshape '**Note: The click event resides in the This Document module Dim sCode As String sCode = "Private Sub " & shp.OLEFormat.Object.Name & "_Click()" & vbCrLf & _ " MsgBox ""You Clicked the CommandButton""" & vbCrLf & _ "End Sub" doc.VBProject.VBComponents("ThisDocument").CodeModule.AddFromString sCode End SubEjecute la macro "Test".
Una vez que la macro "prueba" termine de ejecutarse, verá un nuevo control CommandButton en un nuevo documento. Cuando se hace clic en el control CommandButton , se desencadena el evento click del control.
Notas adicionales para Word 2002 y Word 2003
De forma predeterminada, el acceso a un proyecto de VBA de Word está deshabilitado. Cuando está deshabilitado, el código anterior puede generar el error en tiempo de ejecución ' 6068 ', "el acceso mediante programación al proyecto de Visual Basic no es de confianza". Para obtener más información acerca de este error y de cómo puede corregirlo, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
282830 se denegó el acceso mediante programación al proyecto de VBA de Office