Como adicionar um botão a um documento do Word e atribuir seu evento Click em tempo de execução
Resumo
Este artigo demonstra como você pode usar uma macro do Microsoft Visual Basic for Applications para adicionar programaticamente um controle a um documento do Microsoft Word e adicionar um manipulador de eventos Click a esse controle.
Informações adicionais
As etapas a seguir ilustram como você pode criar uma macro do Word que adicionará um controle a um documento e atribuirá o evento Click desse controle em tempo de execução. As etapas são para o Word. No entanto, você pode aplicar os mesmos conceitos para manipular programaticamente controles em pastas de trabalho do Microsoft Excel.
Observação
A capacidade de manipular o Projeto do Visual Basic de um documento do Microsoft Office em tempo de execução requer uma referência à biblioteca de extensibilidade do Microsoft Visual Basic for Applications.
Etapas para criar o exemplo
Inicie um novo documento no Word.
Pressione Alt+F11 para ir para o Editor do Visual Basic.
No menu Ferramentas, clique em Referências.
Selecione a referência para Extensibilidade Visual Basic for Applications Microsoft.
Insira um novo módulo e adicione o exemplo de código a seguir.
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
Execute a macro "Testar".
Depois que a macro "Test" terminar de ser executada, você verá um novo controle CommandButton em um novo documento. Quando você clica no controle CommandButton , o evento Click do controle é acionado.
Notas adicionais para o Word 2002 e o Word 2003
Por padrão, o acesso a um projeto VBA do Word está desabilitado. Quando desabilitado, o código acima pode gerar o erro de tempo de execução '6068', "O acesso programático ao Projeto do Visual Basic não é confiável". Para obter mais informações sobre esse erro e como você pode corrigi-lo, clique no seguinte número de artigo para exibir o artigo na Base de Dados de Conhecimento Microsoft:
O acesso programático 282830 ao projeto VBA do Office foi negado