Tutoriais Word
Home  |  Tutoriais  |  Artigos  |  VBA  |  Download  |  eBooks Word VBA  |  Dicas e Truques  |  Teclas de Atalho  |  Serviços  |  Contato


Categorias

Básico/Intermediário

  Avançado

  VBA

  Tabelas

  Formulário

  Campo

  Livros

  ABNT

  TCC

Personalizando Formulário

eBook Word 2010 VBA

Tabela do Word como banco de dados

Formulário com Macros no Word 2007 - Exemplo III





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 crie uma tabela com três linhas e três colunas, como mostra a figura abaixo:


Tabela


Agora vamos inserir os controles dentro de nossa tabela.  Neste exemplo usaremos os seguintes cotroles:


1 Caixa de Combinação


2 Caixas de Seleção


Coloque o ponto de inserção na célula abaixo de Nome e em seguida acione a Guia Desenvolvedor e no Grupo Controles clique em Ferramentas Herdadas.


Formulários Herdados


Em Formulários Herdados clique em Caixa de Combinação.


Caixa de Combinação


Veja como ficará.


Caixa de Combinação


Coloque o ponto de inserção na célula abaixo de Masculino e em seguida acione a Guia Desenvolvedor e no Grupo Controles clique em Ferramentas Herdadas.


Formulários Herdados


Em Formulários Herdados clique em Caixa de Seleção.


Caixa de Seleção


Veja como ficará:


Caixa de Seleção


Coloque o ponto de inserção na célula abaixo de Feminino e em seguida acione a Guia Desenvolvedor e no Grupo Controles clique em Ferramentas Herdadas.


Formulários Herdados


Em Formulários Herdados clique em Caixa de Seleção.


Caixa de Seleção


Veja como ficará:


Caixa de Seleção


Agora que todos os controles foram inseridos no documento vamos criar a macro que deverá ser executada.


Na Guia Desenvolvedor, no Grupo Código clique Visual Basic ou use a tecla de atalho Alt + F11.


Visual Basic


No Editor do Visual Basic, na janela Projeto – Project clique em ThisDocument.


ThisDocument


Digite as seguintes linhas de código:


Sub exemplomacro()
Dim Valor As String
Valor = ActiveDocument.FormFields("Dropdown1").Result
If Valor = " " Then
MsgBox"Selecione o nome.", vbOKOnly, "Exemplo de Formulário com macro"
ActiveDocument.FormFields("Selecionar1").CheckBox.Value = False
ActiveDocument.FormFields("Selecionar2").CheckBox.Value = False
SendKeys "+{TAB}"
Else
If Valor = "Antônio" Then
ActiveDocument.FormFields("Selecionar1").CheckBox.Value = True
ActiveDocument.FormFields("Selecionar2").CheckBox.Value = False
Else
If Valor = "Maria" Then
ActiveDocument.FormFields("Selecionar1").CheckBox.Value = False
ActiveDocument.FormFields("Selecionar2").CheckBox.Value = True
End If
End If
End If
End Sub

Observe a figura abaixo:


Janela de Código


Explicando o código de maneira simples:


Sub exemplomacro()  ‘Cria uma macro chamada exemplomacro
Dim Valor as String ‘Declara a variável Valor como tipo String (texto)
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 e validação aos controles

Se Valor for igual a espaço em branco, então..., ou seja, se nenhum nome for selecionado, será exiba uma caixa de mensagem informando ao usuário que um nome deve ser selecionado e nenhuma das caixas de seleção será selecionada.


If Valor = " " Then ‘É necessário colocar um espaço (somente um) entre aspas
MsgBox "Selecione o nome.", vbOKOnly, "Exemplo de Formulário com macro"
ActiveDocument.FormFields("Selecionar1").CheckBox.Value = False
ActiveDocument.FormFields("Selecionar2").CheckBox.Value = False

SendKeys "+{TAB}" ‘retorna o foco a Caixa de Seleção
Else
If Valor = “Antônio“ Then    ‘Se Valor for igual a Antônio, 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 <> "Maria" Then ‘Se Valor for igual a  Maria, 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 If ‘fecha a terceira condição
End Sub ‘Encerra a macro


Feche o Editor do Visual Basic e volte ao documento.


Agora devemos alterar as propriedades dos controles que foram inseridos em nossa tabela.


Selecione o controle Caixa de Combinação e clicando com o botão direito do mouse sobre ele selecione Propriedades no menu pop up, como mostra a figura abaixo.


Propriedades


Agora posicione o cursor dentro da caixa de texto Item suspenso e pressione a tecla de espaço apenas uma vez e em seguida clique em Adicionar para inserir um item em branco na lista suspensa (este será o primeiro item da lista).


Da mesma forma posicione novamente o cursor dentro da caixa de texto Item suspenso e insira os seguintes itens: Antônio e Maria, não esquecendo de clicar no botão Adicionar para inclusão de cada item.


Em Executar macro clique em Saída e selecione a macro que criamos anteriormente chamada exemplomacro e clique em OK.


Em Configurações de campo deixe o campo Indicador com o nome Padrão que já está preenchido (Dropdown1), é possível mudar o nome do Indicador, porém todas as vezes que for fazer referência a este campo deve utilizar o novo nome do Indicador, selecione apenas a opção Suspenso ativado.


Para finalizar clique no botão OK.


Observe a figura abaixo:


Opções do campo de formulário suspenso


Agora vamos proteger nosso formulário para que possamos vê-lo em funcionamento.


Na Guia Desenvolvedor, no Grupo Proteger clique em Proteger Documento.


Proteger Documento


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


Restringir Formatação e Edição


No lado direito da tela surgirão as opções de restrição. Em Restrições de edição selecione a opção “Permitir apenas este tipo de edição no documento:”, em seguida no menu DropDown selecione “Preenchendo Formulários”. Em seguida clique no botão Sim, Aplicar Proteção. Observe a imagem abaixo:


Preenchendo formulários


Digite uma senha para aplicar a proteção.


Aplicar Proteção


OBS: Proteger o formulário ativa os controles e permite que os usuários o completem. As outras áreas do formulário ficam protegidas de alterações, o que impossibilita que o usuário faça qualquer tipo de modificação.


Para desativar a proteção basta somente clicar no botão Parar Proteção e se você optou por colocar uma senha ela será requerida para desproteger.


Com o formulário protegido você deve navegar pelos controles usando a Tecla Tab.


Tab: avançar para o próximo controle


Shift + Tab: retornar ao controle anterior


Clique no primeiro controle 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:


Formulário


Formulário


Formulário


Formulário


Caso o usuário pressione a tecla TAB sem ter selecionado nenhum nome uma mensagem será exibida informando que um nome seja selecionado, em seguida retorna o foco à Caixa de Seleção. Observe a sequência de imagens.


Formulário


Caixa de Mensagem


Formulário


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çã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 e controles.


Dica importante: Para evitar que o usuário clique nas caixas de seleção é possível desativa-las deixando suas propriedades Enabled como False e retirando a linha SendKeys “+{TAB}”.


Acrescente as seguintes linhas:


ActiveDocument.FormFields("Selecionar1").Enabled = False

ActiveDocument.FormFields("Selecionar2").Enabled = False


Exclua a seguinte linha:


SendKeys “+{TAB}”


Desta maneira o código ficaria assim:


Sub exemplomacro()
Dim Valor As String
Valor = ActiveDocument.FormFields("Dropdown1").Result
If Valor = " " Then
MsgBox "Selecione o nome.",vbOKOnly, "Exemplo de Formulário com macro"
ActiveDocument.FormFields("Selecionar1").CheckBox.Value = False
ActiveDocument.FormFields("Selecionar2").CheckBox.Value = False
ActiveDocument.FormFields("Selecionar1").Enabled = False
ActiveDocument.FormFields("Selecionar2").Enabled = False
Else
If Valor = "Antônio" Then
ActiveDocument.FormFields("Selecionar1").CheckBox.Value = True
ActiveDocument.FormFields("Selecionar2").CheckBox.Value = False
ActiveDocument.FormFields("Selecionar1").Enabled = False
ActiveDocument.FormFields("Selecionar2").Enabled = False
Else
If Valor = "Maria" Then
ActiveDocument.FormFields("Selecionar1").CheckBox.Value = False
ActiveDocument.FormFields("Selecionar2").CheckBox.Value = True
ActiveDocument.FormFields("Selecionar1").Enabled = False
ActiveDocument.FormFields("Selecionar2").Enabled = False
End If
End If
End If
End Sub





Veja também...


Formulário com Macro - Exemplo 1: Cálculo Automático


Formulário com Macro - Exemplo 2: Repetindo conteúdo dos controles


Formulário com Macro - Exemplo 4: Usar Enter em vez de Tab


Formulário com Macro - Exemplo 5: Cálculos com datas


Formulário com Macro - Exemplo 6: Cálculos com datas


Conhecendo os Controles de Formulários


Como criar Formulário no Word


Como criar Formulários com Cálculo automático - Exemplo 1


Como criar Formulários com Cálculo automático - Exemplo 2


Como proteger somente o Formulário e deixar o restante do documento livre para edição


Inserindo Texto de Ajuda






eBook Word 2010 VBA

      

 Inscreva-se

 E seja informado sempre que um novo tutorial for publicado.

 E mais... Você poderá fazer gratuitamente o download de 02(dois) e-Books:
- Como preencher uma tabela(VBA) - Iniciante;
- Como preencher uma tabela com várias linhas(VBA) - Iniciante.


 Nome* 
 E-mail* 
 *Preenchimento obrigatório.
Prometemos não utilizar suas informações de contato para enviar qualquer tipo de SPAM.

 



eBook Word 2010 VBA




© 2013 Tutoriais Word - Todos os direitos reservados