Como adicionar um botão a um documento do Word e atribuir o evento Click em tempo de executar

Resumo

Este artigo demonstra como pode utilizar uma macro do Microsoft Visual Basic for Applications para adicionar programaticamente um controlo a um documento do Microsoft Word e adicionar um alça de evento Click para esse controlo.

Mais Informações

Os passos seguintes ilustram como pode criar uma macro do Word que irá adicionar um controlo a um documento e atribuir o evento Click do mesmo em tempo de executar. Os passos são para o Word. No entanto, pode aplicar os mesmos conceitos para manipular controlos através de programação em livros do Microsoft Excel.

Nota

A capacidade de manipular o Visual Basic Project de um documento do Microsoft Office em tempo de resposta requer uma referência à biblioteca de Extensibilidade do Microsoft Visual Basic for Applications Microsoft.

Passos para criar o exemplo

  1. Inicie um novo documento no Word.

  2. Prima Alt+F11 para ir para o Visual Basic Editor.

  3. No menu Ferramentas, clique em Referências.

  4. Selecione a referência para o Microsoft Visual Basic for Applications Extensibility.

  5. Insira um novo módulo e, em seguida, adicione o seguinte exemplo 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. Execute a macro "Teste".

  7. Quando a macro "Teste" concluir a execução, verá um novo controlo BotãoDe Comando num novo documento. Quando clica no controlo CommandButton , o evento Click do controlo é a fires.

Notas adicionais para o Word 2002 e Word 2003

Por predefinição, o acesso a um projeto VBA do Word está desativado. Quando desativado, o código acima pode gerar o erro de tempo de executar "6068", "O Acesso Programático ao Visual Basic Project não é de confiança". Para obter mais informações sobre este erro e como o pode corrigir, clique no número de artigo seguinte para ver o artigo na Base de Dados de Conhecimento Microsoft:

O acesso Programático ao projeto VBA do Office 282830 não é negado