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

Formulário com Macro no Word 2003

Às vezes para executar uma operação é preciso recorrer 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 nos Campos de formulário suspensos (caixa de combinação), somá-los e lançar o resultado no Campo de formulário Texto (Caixa de texto).

Criando um Formulário com Macro

Neste exemplo temos um formulário e neste formulário temos três Campos de formulário suspenso (caixas de combinação) chamadas Dropdown1, Dropdown2 e Dropdown3 e um Campo de formulário texto (caixa de texto) chamada Texto1, mantendo os nomes-padrão atribuídos pelo programa.

Formulário

Cada Campo de formulário suspenso possui vários valores que serão selecionados pelo usuário e o total deverá ser somado automaticamente no Campo de formulário texto.

Observe a sequência de imagens abaixo:

Selecionando o primeiro valor.

Campo de Formulário Texto

Selecionando o segundo valor.

Campo de Formulário Texto

Selecionando o terceiro valor.

Campo de Formulário Texto

Para que a somatória seja feita automaticamente no Campo de formulário texto (caixa de texto), vamos usar um pouco de programação VBA. Para isso clique no Menu Ferramentas >> Macro >> Editor do Visual Basic ou se referir acione a combinação de teclas Alt+F11.

Editor do Visual Basic

No Editor do Visual Basic, você vê à esquerda a caixa Projeto. Clique em Project (Nome do Documento). Nome do Documento, aqui, é o nome do arquivo de seu formulário, sem extensão.

Dentro dessa pasta Project há outra, chamada Microsoft Word Objetos e, dentro desta última, ThisDocument. Dê um duplo clique em ThisDocument para abrir uma janela de código em branco.

Janela de Código

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

Sub SomaCampos()

   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

End Sub

Deverá ficar assim:

Janela de Código

Essa rotina (macro) chamada SomaCampos pega o valor atual dos três Campos de formulário suspenso (caixas de combinação), soma-os e escreve o resultado no Campo de formulário texto (caixa de texto).

Feche o Editor do Visual Basic.

Agora devemos ajustar o formulário, portanto, vamos voltar a cada Campo de formulário suspenso, selecione o campo 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. Repita esse procedimento em todas os Campos de formulário suspenso. Para finalizar clique em OK

Opções do campo de formulário suspenso

Não se esqueça de proteger o formulário, pois isso é indispensável para que tudo funcione adequadamente. Para proteger o formulário você deve clicar na ferramenta Proteger formulário. Observe a imagem abaixo.

Formulários

Selecione os valores dos Campos de formulário suspenso (caixas de combinação) e veja que o resultado no Campo de formulário texto (caixa de texto) atualiza automaticamente.

Campo de formulário texto

Considerações finais:

Use a tecla Tab para navegar pelos campos de formulários.

Tab para avançar

SHIFT + TAB para retornar

Para evitar erros na operação, incluí nas opções dos Campos de formulario suspenso (caixas de combinação) o valor 0 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.




Formação Pacote Office



eBook Word 2010 VBA

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