Cómo agregar un botón a un documento de Word y asignar su evento Click en tiempo de ejecución

Resumen

En este artículo se muestra cómo 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 ese control.

Más información

En los pasos siguientes se muestra cómo 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 controles mediante programación en 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 extensibilidad de Microsoft Visual Basic para Aplicaciones.

Pasos para crear el ejemplo

  1. Inicie un nuevo documento en Word.

  2. Presione Alt+F11 para ir al Editor de Visual Basic.

  3. En el menú Herramientas, haga clic en Referencias.

  4. Seleccione la referencia de Extensibilidad de Microsoft Visual Basic para Aplicaciones.

  5. Inserte un nuevo módulo y 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 Sub
    
  6. Ejecute la macro "Test".

  7. Una vez que la macro "Test" termine de ejecutarse, verá un nuevo control CommandButton en un documento nuevo. Al hacer 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 VBA de Word está deshabilitado. Cuando está deshabilitado, el código anterior puede generar el error en tiempo de ejecución "6068", "Acceso mediante programación al proyecto de Visual Basic no es de confianza". Para obtener más información sobre este error y cómo puede corregirlo, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

282830 Se deniega el acceso mediante programación al proyecto VBA de Office