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
Inicie um novo documento no Word.
Prima Alt+F11 para ir para o Visual Basic Editor.
No menu Ferramentas, clique em Referências.
Selecione a referência para o Microsoft Visual Basic for Applications Extensibility.
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
Execute a macro "Teste".
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