Formulário com Macro no Word 2003 - Exemplo 3
Neste tutorial darei um simples exemplo de como podemos executar uma macro através de um campo de formulário deixando seu preenchimento o mais automático possível.
Para este exemplo criaremos uma tabela com três colunas e duas linhas como mostra a figura abaixo.
Agora clique no menu Exibir >> Barras de ferramentas >> Formuláriospara exibir a barra de ferramentas de Formulários.
Observe a barra de ferramenta de formulários.
Agora vamos inserir os campos de formulários necessários ao nosso exemplo.
Posicione o cursor dentro da coluna Nome e na barra de ferramentas de Formulários clique em campo de formulário suspenso como é mostrado na figura abaixo.
Posicione o cursor dentro da coluna Masculino e na barra de ferramentas de Formulários clique em campo de formulário caixa de seleção como é mostrado na figura abaixo.
Posicione o cursor dentro da coluna Feminino e na barra de ferramentas de Formulários clique em campo de formulário caixa de seleção como é mostrado na figura abaixo.
Agora que todos os campos foram inseridos no documento vamos criar a macro que deverá ser executado.
Clique no menuFerramentas >> Macro >> Editor do Visual Basic ou use a tecla de atalho Alt + F11.
No Editor do Visual Basic, na janela Projeto – Project clique em ThisDocument
Digite as seguintes linhas de código:
Sub condicao
Dim Valor As String
Valor = ActiveDocument.FormFields("Dropdown1").Result
If Valor = "Ednilson" Then
ActiveDocument.FormFields("Selecionar1").CheckBox.Value= True
ActiveDocument.FormFields("Selecionar2").CheckBox.Value = False
Else
If Valor <> "Ednilson" Then
ActiveDocument.FormFields("Selecionar1").CheckBox.Value = False
ActiveDocument.FormFields("Selecionar2").CheckBox.Value = True
End If
End If
End Sub
Observe a figura abaixo:
Explicando o código de maneira simples:
Sub condicao ‘Cria uma macro chamada condição
Dim Valor as String ‘Declara a variável Valor como uma string
Valor = ActiveDocument.FormFields(“Dropdown1”).Result ‘Afirma que Valor é igual ao conteúdo selecionado no campo Dropdown1 (campo de formulário suspenso) do formulário do documento ativo.
O trecho abaixo impõe algumas condições
If Valor = "Ednilson" Then ‘Se Valor for igual a "Ednilson", então...
ActiveDocument.FormFields("Selecionar1").CheckBox.Value = True ‘Será selecionado a primeira caixa de seleção do formulário do documento ativo.
ActiveDocument.FormFields("Selecionar2").CheckBox.Value = False ‘A segunda caixa de seleção do formulário do documento ativo não será selecionada.
Else ‘Senão...
If Valor ="Ednilson" Then ‘Se Valor for diferente de Ednilson, então...
ActiveDocument.FormFields("Selecionar1").CheckBox.Value = False ‘A primeira caixa de seleção do formulário do documento ativo não será selecionada.
ActiveDocument.FormFields("Selecionar2").CheckBox.Value = True ‘Será selecionado a segunda caixa de seleção do formulário do documento ativo.
End If ‘Fecha a primeira condição
End If ‘fecha a segunda condição
End Sub ‘Encerra a macro
Feche o Editor do Visual Basic e volte ao documento. Selecione o primeiro campo que você inseriu e clique com o botão direito do mouse e selecione Propriedadescomo mostra a figura abaixo.
Posicione o cursor dentro de Item suspenso e pressione três vezes a tecla de espaço e clique em Adicionar
Digite Adriana dentro de Item suspenso e clique em Adicionar
Digite Ednilson dentro de Item suspenso e clique em Adicionar
Agora em Executar macro clique em Saída e selecione a macro que criamos anteriormente chamada condicaoe clique em OK. Observe a figura abaixo:
Agora vamos proteger nosso formulário para que possamos vê-lo em funcionamento.
Clique no cadeado que aparece na barra de ferramentas de formulários para protegê-lo.
Clique no primeiro campo e selecione um nome e depois pressione a tecla Tab para sair deste campo.Note que ao sair do campo a macro é acionada preenchendo automaticamente os outros campos conforme o item selecionado.
Veja a seqüência de imagens abaixo:
Consideração Final: A partir do exemplo aqui mostrado você poderá criar outras macros a adaptá-las aos seus formulários automatizando ainda mais o seu preenchimento pelos usuários.
Neste simples exemplo que usamos ainda é possível aperfeiçoar a macro para uma lista maior de nomes ou campos e também fazer tratamento de erros para quando o usuário clicar nas duas caixas de seleção.