Você está na página 1de 10

Vou mostrar um exemplo no Microsoft Word 2003 e 2010 para fazer com

que ao selecionarmos um item em um drop down seja feito o auto


preenchimento de alguns campos. No ser usado nenhum arquivo
externo como base de dados, tudo ser feito no prprio Word atravs do
uso de VBA. Essa uma publicao complementar sobre "Usando
combobox no Word 2003 e 2010" e "Recursos para criao de
formulrios no Word". Por isso se sugir alguma dvida sugiro que as veja
primeiro.
Word
Word

2003:

Abra um documento novo do Word, depois crie uma tabela e campos


como mostrado na imagem abaixo:

Habilite tambm a barra de ferramentas de formulrios. Para isso v ao


menu "Exibir", "Barra de ferramentas" e clique em "Formulrios". Depois
coloque na frente de "Veculo:" um campo drop down - Campo de
formulrio suspenso - enquanto que na frente de "Marca:", "Motor:",
"Cor" e "Portas:" coloque campos de formulrio de texto. D dois cliques
rpidos no campo drop down que voc inseriu na frente de "Veculo:"
para abrir as suas opes. Adicione "Uno Mille", "C4 Pallas" e "Voyage".
Confirme.

Tambm d dois cliques em cada campo de formulrio de texto para


abrir as suas opes e alterar o seu "Indicador". Por exemplo, no campo
frente de "Marca:" altere o indicador para "txtmarca", na frente de
"Motor:" altere o indicador do campo de formulrio de texto para
"txtmotor", na frente de "Cor:" altere o indicador do campo de formulrio
de texto para "txtcor" e na frente de "Portas:" altere o indicador do
campo de formulrio de texto para "txtportas".

Agora v ao menu "Ferramentas", em "Macro" clique em "Editor do


Visual Basic". Na janela que abrir clique em "ThisDocument" do lado
esquerdo para que seja mostrado direita o local que voc dever colar
o cdigo abaixo. Repare que o cdigo tem comentrios que esto em
verde para explicar como ele funciona.
Option Explicit
Sub autopreenchimento()
'Se escolher "Uno Mille" no Dropdown ento
If ActiveDocument.FormFields("Dropdown1").Result = "Uno Mille" Then

'Faz o preenchimento dos campos


ActiveDocument.FormFields("txtmarca").Result = "FIAT"
ActiveDocument.FormFields("txtmotor").Result = "lcool"
ActiveDocument.FormFields("txtcor").Result = "Branco"
ActiveDocument.FormFields("txtportas").Result = "2"
Else 'Se a escolha no foi "Uno Mille" ento
'Se a escolha foi "C4 Pallas" no Dropdown ento
If ActiveDocument.FormFields("Dropdown1").Result = "C4 Pallas"
Then
'Faz o preenchimento dos campos
ActiveDocument.FormFields("txtmarca").Result = "Citron"
ActiveDocument.FormFields("txtmotor").Result = "Gasolina"
ActiveDocument.FormFields("txtcor").Result = "Preto"
ActiveDocument.FormFields("txtportas").Result = "4"
Else 'Se a escolha no foi "Uno Mille" e nem "C4 Pallas" ento
'Faz o preenchimento dos campos
ActiveDocument.FormFields("txtmarca").Result = "Volkswagen"
ActiveDocument.FormFields("txtmotor").Result = "Flex"
ActiveDocument.FormFields("txtcor").Result = "Prata"
ActiveDocument.FormFields("txtportas").Result = "4"
End If
End If
End Sub
Veja como fica no editor:

Salve, feche o "Editor do Visual Basic" Clicando no cone do Word


- Primeiro cone na barra de ferramentas - e abra as opes do campo de
formulrio de texto frente de "Marca". Voc dever selecionar o nome
da subrotina em "Sada". No nosso caso o nome da subrotina
"autopreenchimento".

Faa a mesma coisa com os demais campos de formulrios de texto e


tambm com o campo drop down. Feito isso voc j pode trancar o
formulrio clicando no cone de cadeado - Proteger formulrio - o ltimo
cone da barra de formulrios. Salve que j est pronto.

S tem um problema, depois de selecionar no drop down o item que


voc quer, os demais campos s sero atualizados se voc clicar em um
campo de formulrio de texto, nada que incomode muito. Se no est
funcionando pode ser que a segurana de macro do Word esteja
bloqueando a funo. Para resolver isso v ao menu "Ferramentas" e
clique em "Opes". Na janela que se abrir clique na aba "Segurana" e
nessa aba clique no boto "Segurana de macro". Ao clicar nesse boto
ser aberta outra janela com mais duas abas. Na aba "Nvel de
segurana" selecione "Nvel mdio" e confirme. Assim quando for abrir o
documento novamente, ser perguntado se deseja habilitar as macros.
Opte
por
habilitar.
Vamos ver agora um outro exemplo, dessa vez faremos um
campo drop down preencher outro campo drop down
dependendo
do
que
for
selecionado
no
primeiro.
Abra um novo documento do Word e coloque dois campos drop down. No
primeiro insira as opes: Frutas, Legumes e Carnes. Em indicador
escreva "Selecionado".

Nas opes do segundo drop down digite "Resultado" no campo


"Indicador".

Agora abra o "Editor do Visual Basic" e cole o seguinte cdigo em


"ThisDocument". Veja que este cdigo tambm est comentado para
facilitar
o
entendimento.
Option

Explicit

Sub

Combina_DropDown()

'
Declarao
Dim
Dim
Dim

de

variveis
Frutas(3)
Legumes(3)
Carnes(3)

'
Dim
Dim

Declarao

'

Variveis

de
i

do

variveis

tipo

texto
As
As
As

do
As

sendo
armazenadas
em
Frutas(0)
=
Frutas(1)
=
Frutas(2)
=
Frutas(3)
=
Legumes(0)
Legumes(1)
Legumes(2)
Legumes(3)

=
=
=
=

como

tipo

suas

matriz
String
String
String
numrico
Integer
contador

matrizes
"Ma"
"Pssego"
"Pera"
"Abacaxi"
"Berinjela"
"Nabo"
"Cenoura"
"Beterraba"

Carnes(0)
Carnes(1)
Carnes(2)
Carnes(3)

=
=
=
=

"Bife"
"Alcatra"
"Picanha"
"Pernil"

' Comea a verificar as condies dependendo do que for escolhido


Select Case ActiveDocument.FormFields("Selecionado").DropDown.Value
' Caso seja escolhido Frutas ento preencha o segundo Drop Down
Case
1
ActiveDocument.FormFields("Resultado").DropDown.ListEntries.Clear
For
contador
=
1
To
ActiveDocument.FormFields("Resultado").DropDown.ListEntries.Add
Name:=Frutas(i)
i
=
i
+
ActiveDocument.FormFields("Resultado").DropDown.Value

1
Next
= 1

' Caso seja escolhido Legumes ento preencha o segundo Drop Down
Case
2
ActiveDocument.FormFields("Resultado").DropDown.ListEntries.Clear
For
contador
=
1
To
ActiveDocument.FormFields("Resultado").DropDown.ListEntries.Add
Name:=Legumes(i)
i
=
i
+
ActiveDocument.FormFields("Resultado").DropDown.Value

1
Next
= 1

' Caso seja escolhido Carnes ento preencha o segundo Drop Down
Case
3
ActiveDocument.FormFields("Resultado").DropDown.ListEntries.Clear
For
contador
=
1
To
ActiveDocument.FormFields("Resultado").DropDown.ListEntries.Add
Name:=Carnes(i)
i
=
i
+
ActiveDocument.FormFields("Resultado").DropDown.Value
End

1
Next
= 1
Select

End

Sub

Feito isso feche o "Editor do Visual Basic" para voltar ao documento do


Word. Abra as opes do primeiro Drop Down, em "Sada:" selecione
"Combina_DropDown" e d "OK".

Agora tranque o formulrio, salve e faa o teste. Tudo j deve estar


funcionado corretamente agora.

E isso encerra a explicao sobre o Word 2003.


_______________________________________
Word

2010:

Para fazer mesmo procedimento no Word 2010, leia toda a publicao.


Sero mostradas somente as diferenas da interface que podero gerar
dvidas.
Os
cdigos
usados
so
os
mesmos.
Para habilitar os recursos que voc ir precisar, abra o Word, v ao menu

"Arquivo"

clique

em

"opes".

Ser aberta outra janela onde voc dever clicar em "Personalizar Faixa
de Opes" e marcar a checkbox "Desenvolvedor".

Feito isso ficar diponvel a guia "Desenvolvedor" que possui as


ferramentas de que precisamos. Os recursos usados na criao de
formulrios esto em "Controles". Crie os dois campos drop down (Caixa
de
Combinao
Controle
de
Formulrio).
Agora ser necessrio ler o que foi descrito acima na explicao sobre o
Word 2003. Isso porque os procedimentos no diferem muito, ento no
v necessidade de repetir toda a explicao. A diferena est na hora de
trancar o documento. O Word 2010 no possui o cone de cadeado nas
ferramentas de formulrios como no Word 2003. Para proteger o
documento clique em "Restringir Edio" na aba "Desenvolvedor".
Marque a checkbox "Permitir apenas este tipo de edio no documento"
e seleciona abaixo "Preenchendo formulrios". Clique em "Sim, Aplicar

Proteo" e ser solicidado que voc coloque uma senha, essa senha
opcional bastando confirmar caso no queira nenhuma.

Outra diferena est na hora de salvar. Por possuir comandos em VBA, o


documento no Word 2010 deve ser salvo como "Documento Habilitado
para Macro do Word" em "Salvar como". O Resultado final visto abaixo.

Se quiser baixar os exemplos desta publicao clique aqui e clique aqui.


Senha para descompactar: lomeutec