Do Básico ao Avançado
Home  Tutoriais  Artigos  Contato

Formulário com Macro - Exemplo 1

Criar um Formulário com Macro às vezes é necessário para executar uma determinada operação que não seria possível senão recorressemos a uma pequena rotina de programação em linguagem Visual Basic For Applications -VBA.

Isso é necessário porque não há uma outra forma, senão via programação, de capturar os valores definidos em Caixa de Combinação, somá-los e lançar o resultado em um Campo Texto.

Neste exemplo temos um formulário com três Caixas de Combinação chamadas Dropdown1, Dropdown2 e Dropdown3 e um Campo de Texto chamado Texto1, mantendo os nomes-padrão atribuídos pelo programa.

Formulário

Cada Caixa de Seleção possui vários valores que serão selecionados pelo usuário e o total deverá ser mostrado automaticamente no Campo Texto.

Para que a somatória seja feita automaticamente no Campo de Texto, vamos criar uma macro usando o Editor do Visual Basic - VBA. Para isso acione a Guia Desenvolvedor e no Grupo Código clique em Visual Basic ou se referir acione a combinação de teclas Alt+F11.

Visual Basic

No ambiente de desenvolvimento Visual Basic, na Janela de Projeto clique em ThisDocument.

ThisDocument

Clique no menu Inserir e em seguida clique em Módulo.

Inserir Módulo

Na janela de código em branco adicione o seguinte código.

Sub Soma Campos()
On error GoTo Trata-erro
Dim a As Double, b As Double, c As Double
ActiveDocument.FormFields("Texto1").Result = " "
a = CDbl(ActiveDocument.FormFields("Dropdown1").Result)
b = CDbl(ActiveDocument.FormFields("Dropdown2").Result)
c = CDbl(ActiveDocument.FormFields("Dropdown3").Result)
ActiveDocument.FormFields("Texto1").Result = a + b + c
Trata-erro:
Exit Sub
End Sub

Deverá ficar assim:

Janela de Código

A macro SomaCampos pega o valor atual das três Caixas de Combinação, soma-os e exibe o resultado no Campo Texto.

Agora feche o Editor do Visual Basic clicando no menu Arquivo e em Fechar e voltar para Microsoft Word, ou através do atalho ALT + Q.

Fechar Editor do Visual Basic

Agora devemos ajustar o formulário, portanto, selecione a primeira Caixa de Combinação e com o botão direito do mouse selecione Propriedades.

Propriedades

Em Executar macro, na caixa Saída, selecione o nome da macro SomaCampos, que é uma das opções. Para finalizar clique em OK

Opções do campo de  formulário suspenso

Repita esse procedimento em todas as Caixas de Combinação.

Agora vamos Proteger o documento. Pra isso acione a Guia Desenvolvedor e no Grupo Proteger clique em Proteger Documento.

Proteger Documento

Clique em Restringir Formatação e Edição.

Restringir Formatação e Edição

Note que ao lado direito surge a janela para configurações de proteção.

Em Restrições de edição tique em Permitir apenas este tipo de edição no documento: e na caixa de listagem selecione Preenchendo formulários, em seguida clique no botão Sim, Aplicar Proteção.

Restringir Formatação e Edição

Defina uma senha e depois dê um OK.

Aplicar Proteção

Selecione os valores das Caixas de Combinação e veja que o resultado no Campo Texto atualiza automaticamente.

Campo Texto

Use a tecla Tab para navegar pelos campos deformulários.

Tab para avançar

SHIFT + TAB para retornar


Para que uma macro possa ser executada é necessário alterar a configuração de Macro do Word. Pra isso clique no Botão do Office e em seguida clique no botão Opções, como mostra as imagens abaixo:

Opções do Word

Na janela de Opções do Word clique em Central de Confiabilidade:

Central de Confiabilidade

Clique em Configurações da Central de Confiabilidade...

Configurações da Central de Confiabilidade

Em Central de Confiabilidade clique em Configurações de Macro e em Configurações de Macro selecione a opção Habilitar todas as macros.

Configurações de Macro

Para concluir clique no botão OK. Agora o Microsoft Word está habilitado para executar macros.


Considerações finais:

Para evitar erros na operação foi incluído nas opções das Caixas de Combinação o valor 0 (zero) como o primeiro da lista.

Também é possível deixar essa opção em branco ou trocá-la por algo como "Selecione um valor". Nesse caso, para evitar erro, seria necessário alterar o código: antes de executar a soma, verificar se o valor da caixa de combinação é um texto e, nesse caso, trabalhar com ele como equivalente ao valor numérico zero.

De qualquer forma também acrescentamos ao código um tratamento de erro em tempo de execução (On error GoTo Trata-erro), caso ocorra algum erro a rotina Trata-erro será executada.






Conteúdo Correspondente:





eBook Word 2010 VBA

Política de Privacidade  |   © 2013 Tutoriais Word - Todos os direitos reservados