Note: The other languages of the website are Google-translated. Back to English

Como criar listas suspensas dependentes em um documento do Word?


Como mostrado na captura de tela à esquerda, você precisa limitar as opções na segunda lista suspensa com base na opção na primeira lista suspensa, como você pode fazer? Este artigo mostrará um método para criar listas suspensas dependentes em um documento do Word.

Crie listas suspensas dependentes no Word com código VBA


Crie listas suspensas dependentes no Word com código VBA

O código VBA abaixo pode ajudá-lo a criar uma lista suspensa dependente em um documento do Word. Por favor, siga as instruções passo a passo.

1. Em primeiro lugar, você precisa inserir duas listas suspensas no seu documento do Word. Clique Desenvolvedor > Formulários herdados > Campo de formulário suspenso. Veja a imagem:

2. Clique com o botão direito na primeira lista suspensa (esta lista deve ser a principal) e clique em Propriedades. Veja a imagem:

3. Na abertura Opções de campo de formulário suspenso caixa de diálogo, você precisa:

3.1 Insira a categoria no Item suspenso caixa e, em seguida, clique no botão Adicionar botão, repita a operação até que todas as categorias sejam adicionadas à caixa de lista suspensa Itens em.

3.2 Entrar ddfood no Bookmark caixa.

3.3 Clique no OK botão. Veja a imagem:

4. Clique com o botão direito na segunda lista suspensa e clique em Propriedades para abrir o seu Opções de campo de formulário suspenso caixa de diálogo e, na caixa de diálogo, digite ddCategoria no Bookmark caixa e clique no OK botão. Veja a imagem:

5. aperte o outro + F11 chaves para abrir o Microsoft Visual Basic para Aplicações janela.

6. No Microsoft Visual Basic para Aplicações janela, clique em inserção > Módulo, em seguida, copie o código VBA abaixo para a janela Módulo.

Código VBA: crie uma lista suspensa dependente no Word

Sub Populateddfood()
'Update by Extendoffice 2018/10/25
    Dim xDirection As FormField
    Dim xState As FormField
    On Error Resume Next
    Set xDirection = ActiveDocument.FormFields("ddfood")
    Set xState = ActiveDocument.FormFields("ddCategory")
    If ((xDirection Is Nothing) Or (xState Is Nothing)) Then Exit Sub
    With xState.DropDown.ListEntries
        .Clear
        Select Case xDirection.Result
            Case "Fruit"
                .Add "Apple"
                .Add "Banana"
                .Add "Peach"
                .Add "Lychee"
                .Add "Watermelon"
            Case "Vegetable"
                .Add "Cabbage"
                .Add "Onion"
            Case "Meat"
                .Add "Pork"
                .Add "Beef"
                .Add "Mutton"
        End Select
    End With
End Sub

notas:

1. No código, altere os itens em cada caso conforme necessário.

2. ddfood e ddCategoria deve corresponder às opções de marcador que você inseriu nos dois acima Opções de campo de formulário suspenso caixa de diálogo.

7. Salve o código e volte ao documento.

8. Clique com o botão direito na primeira lista suspensa e clique em Propriedades para abrir o Opções de campo de formulário suspenso caixa de diálogo. Na caixa de diálogo, selecione o nome da macro acima (aqui é Popolateddfood) do saída lista suspensa e clique no OK botão.

9. Agora clique Desenvolvedor > Restringir edição como a imagem abaixo mostrada.

10. No Restringir edição painel, você precisa:

10.1) Verifique o Permitir apenas este tipo de edição no documento caixa;

10.2) Selecione Preenchendo formulários opção da lista suspensa;

10.3) Clique no Sim, comece a aplicar proteção botão;

10.4) No Comece a aplicar proteção caixa de diálogo, digite a senha e clique no OK botão. Veja a imagem:

Agora uma lista suspensa dependente é criada. Ao selecionar Frutas na primeira lista suspensa, apenas as categorias de frutas podem ser selecionadas na segunda.


Ferramentas de produtividade de palavras recomendadas

 

Kutools para Word - Mais de 100 recursos avançados para Word, economize 50% do tempo

  • Operações complicadas e repetidas podem ser executadas com processamento único em segundos.
  • Insira várias imagens em pastas em um documento do Word de uma vez.
  • Mescle e combine vários arquivos do Word em pastas em um na ordem desejada.
  • Divida o documento atual em documentos separados de acordo com o título, quebra de seção ou outros critérios.
  • Converta arquivos entre Doc e Docx, Docx e PDF, coleção de ferramentas para conversões e seleção comuns, e assim por diante ...
Comentários (27)
Ainda não há classificações. Seja o primeiro a avaliar!
Este comentário foi feito pelo moderador no site
Existe um código semelhante para fazer quase exatamente a mesma coisa, exceto que um campo de formulário de texto seja preenchido automaticamente, dependendo da escolha do menu suspenso? Por exemplo, escolher uma empresa específica na lista suspensa e ter um campo de formulário de texto preenchido automaticamente com a cidade onde a empresa está localizada?
Este comentário foi feito pelo moderador no site
Dia bom,
Desculpe pode ajudá-lo com isso. Obrigado pelo seu comentário.
Este comentário foi feito pelo moderador no site
Você pode adicionar isso a várias áreas em uma única página composta por várias seções? Consegui concluir com êxito o processo em uma seção do meu documento, mas quando tento concluir o mesmo processo na mesma página, mas em uma seção diferente do meu documento e com novas opções suspensas, apenas minhas primeiras caixas adicionadas estão funcionando, não os da segunda seção ..
Este comentário foi feito pelo moderador no site
Olá Ingrid,
Supondo que você tenha três grupos de listas suspensas dependentes em seu documento. Se você precisar que todas as listas suspensas dependentes entrem em vigor, aplique o código VBA abaixo e faça as configurações abaixo:

Nas etapas 4 e 5 que mencionamos no artigo, agora você precisa fazer as seguintes alterações:
1. Para o primeiro grupo de listas suspensas dependentes, entre na janela Propriedades de cada lista suspensa e especifique o Marcador como ddfood1 e ddCategory1 separadamente;
2. Para o segundo grupo de listas suspensas dependentes, entre na janela Propriedades de cada lista suspensa e especifique o Marcador como ddfood2 e ddCategory2 separadamente;
2. Para o terceiro grupo de listas suspensas dependentes, entre na janela Propriedades de cada lista suspensa e especifique o Marcador como ddfood3 e ddCategory3 separadamente;

Em seguida, vá em frente exatamente como fornecemos no artigo para concluir todas as configurações.

Código VBA:
Subpopulateddfood()
'Atualizar por Extendoffice 2019/03/18
Dim xDirection como FormField
Dim xState como FormField
Dim xRng como intervalo
Dim xFoodBM, xCategoryBM As String
Definir xRng = Seleção.Intervalo
On Error Resume Next
Para i = 1 Para ActiveDocument.FormFields.Count
xFoodBM = "ddfood" & i
xCategoryBM = "ddCategory" & i
Definir xDirection = ActiveDocument.FormFields(xFoodBM)
Definir xState = ActiveDocument.FormFields(xCategoryBM)
Se (não (xState não é nada)) e (não (xDirection não é nada)) então
Com xState.DropDown.ListEntries
.Claro
Selecione Caso xDireção.Resultado
Caixa "Frutas"
.Adicione "Maçã"
.Adicione "Banana"
.Adicione "Pêssego"
.Adicione "Lichia"
.Adicione "Melancia"
Caso "Vegetais"
.Adicione "Repolho"
.Adicione "Cebola"
Caixa "Carne"
.Adicione "Carne de Porco"
.Adicione "Carne"
.Adicione "Carneiro"
End Select
Terminar com
Se acabar
Definir xDireção = Nada
Definir xState = Nada
Seguinte
xRng.Selecionar
End Sub
Este comentário foi feito pelo moderador no site
isso pode ser feito em versões mais antigas do Word ou precisa ser salvo como um determinado tipo de documento?
Este comentário foi feito pelo moderador no site
Oi Mary,
Qual versão você quer dizer?
Este comentário foi feito pelo moderador no site
Oi lá,
existem restrições com o nome no campo (por exemplo, 2 palavras, ou uso de caracteres especiais)?
Como Campo A (Nome da Empresa) Campo B (Nome do Diretor, como Jack Black).
Obrigado!
Este comentário foi feito pelo moderador no site
Oi Marc,
Sim, existem restrições com o nome no campo.
Para várias palavras com espaços, você precisa substituir os espaços por sublinhados, como Company_Name.
E o nome do marcador não pode conter nenhum dos caracteres especiais, como / \ : * ? " < > |
Obrigado pelo seu comentário.
Este comentário foi feito pelo moderador no site
Oi,

Como fazemos quebra de texto? Eu segui o passo e funciona bem, exceto que quando a segunda lista é muito longa, ela vai além da página. Existe uma maneira de tê-lo embrulhado automaticamente?
Este comentário foi feito pelo moderador no site
Oi Paulo,
Desculpe, não posso ajudá-lo com isso ainda. Obrigado por seu comentário.
Este comentário foi feito pelo moderador no site
HI Eu tenho os drop downs para trabalhar. Eu tenho uma pergunta
Quando faço a seleção para a primeira lista suspensa, existe alguma maneira de automatizar as seleções de coordenação e relacionadas para as seguintes listas suspensas? Por exemplo. Eu tenho um advogado suspenso pai, os dois menus suspensos filho são Título e Número de telefone, respectivamente. Quando seleciono o nome do advogado, gostaria que as listas suspensas filho relacionadas preenchessem automaticamente o título e o número de telefone. Como eu seria capaz de fazer isso?

Obrigado antecipadamente.

Sylvia
Este comentário foi feito pelo moderador no site
Dia bom,
Desculpe, não posso ajudá-lo com isso ainda. Obrigado por seu comentário.
Este comentário foi feito pelo moderador no site
Existe uma maneira de adicionar vários campos de categoria com base em uma seleção? por exemplo, preciso dizer Selecionar "Vinho", mas preciso ser capaz de selecionar 5 opções (frutado, vermelho, forte, etc...) das 10 opções possíveis na segunda lista de campos suspensos. Eu segui as instruções acima e funciona bem em um campo com apenas um outro campo dependente. Mas eu preciso de 5 campos dependentes, todos acionados por um campo neste caso "vinho". Duplico o campo drop-down não funciona, estou tentando adicionar um segundo campo ao código, mas não sei como: ActiveDocument.FormFields("ddCategory") e ("ddCategory2")
Este comentário foi feito pelo moderador no site
Oi Ed,
Desculpe não poder ajudá-lo com isso. Obrigado pelo seu comentário.
Este comentário foi feito pelo moderador no site
Olá, como posso duplicar a caixa de categorias? Eu usei o código acima e funciona bem, mas apenas para uma caixa. O que faço no código se, por exemplo, precisar selecionar até 3 frutas depois de selecionar o grupo de frutas? Estou duplicando o campo que criei, mas apenas um funciona.
---------------------
Selecionar
FRUTA: banana
maçã
"Selecionar item"


----------------------------------
Selecionar
Vegetal: repolho
cebola
"Selecionar item"
Este comentário foi feito pelo moderador no site
Obrigado por este recurso muito útil.

É possível repetir a mesma lista suspensa dependente várias vezes em um formulário?

Eu preciso que o preenchedor de formulário atribua uma categoria a cada nova linha (mas com as mesmas opções todas as vezes). Criei com sucesso as listas suspensas, mas quando restrinjo a edição para testar, elas parecem se redefinir enquanto eu trabalho nas linhas.

obrigado
Amy
Este comentário foi feito pelo moderador no site
Estou usando este mesmo código, porém o texto que estou substituindo o ddcategory tem mais de 100 palavras. Existe alguma maneira de quebrar o texto para evitar que ele saia da página e desapareça?
Este comentário foi feito pelo moderador no site
Eu tenho o mesmo problema!! :0
Este comentário foi feito pelo moderador no site
سلام من marc م gio marca marca ورآخرآخ dir cha از ی از ی از ی از ی از ی از ی از ی از ی از ی از ی از ی از ی از ی از ی از ی از از از از از از انntos ی marc از انntos ی marc از انntos ی marc از از vens ز marc.
چیکار باید بکنم؟
Este comentário foi feito pelo moderador no site
Olá, por algum motivo não consigo modificar mais nada no arquivo de palavras se a lista suspensa estiver ativa. Existe uma maneira de evitar isso?

Obrigado
Este comentário foi feito pelo moderador no site
estou com o mesmo problema alguem conseguiu me ajudar
Este comentário foi feito pelo moderador no site
Isso foi extremamente útil, obrigado.
Eu tenho uma pergunta, existe uma maneira de modificar o código para que quando eu selecionar um novo item da primeira lista suspensa, o dependente seja apagado?
Este comentário foi feito pelo moderador no site
Desculpe a demora em responder, só encontrei esta página hoje :-)
Já faz isso. A primeira instrução dentro da construção Select case ... End select limpa a segunda lista. Se nenhum dos critérios for atendido, nada será adicionado.
Este comentário foi feito pelo moderador no site
Olá, obrigado pelo tutorial detalhado, mas tenho uma pergunta, pois o modelo de palavra é para uso de outras pessoas, 
Este comentário foi feito pelo moderador no site
Oi, muitos thx para o tutorial detalhado, mas tenho uma pergunta, pois o modelo de palavra é para uso de outras pessoas. Você mencionou o modo de proteção e uma senha é obrigatória, isso pode ser feito se eu disser a senha, então há um conflito: existem alguns outros espaços em branco que precisam ser preenchidos, isso não pode ser feito apenas se o modo de proteção for fora. O que devo fazer? Existe algum método para atender às duas necessidades?
Este comentário foi feito pelo moderador no site
Olá,

ist das ganze auch unter Outlook möglich. Leider bekomme ich das so nicht hin da die Eigenschaften des Dropdown Menüs ganz anders aussehen.

Ich wollte unter Aufgaben einen Reparaturauftrag erstellen wo man Gebäude,Bereich und dan Zimmernummer oder Bezeichnung auwählen kann.

É das möglich no Outlook/Aufgaben?



Obrigado
Este comentário foi feito pelo moderador no site
Oi,
Você pode criar uma lista suspensa com campo personalizado na janela Tarefa do Outlook seguindo as etapas deste artigo:
Como adicionar uma lista suspensa com personalizado arquivado na janela de tarefas do Outlook?
https://www.extendoffice.com/documents/outlook/4453-outlook-custom-fields-tasks-drop-down.html
Ou crie uma lista suspensa no Word e copie e cole na janela Tarefa conforme necessário.
Mas se você quiser criar listas suspensas dependentes na Tarefa do Outlook, nenhum método foi encontrado ainda.
Desculpe por isso.
Não há comentários postados aqui ainda
Deixe o seu comentário
Postando como convidado
×
Avalie esta postagem:
0   Personagens
Locais sugeridos

Siga-nos

Copyright © 2009 - www.extendoffice.com. | Todos os direitos reservados. Distribuído por ExtendOffice. | | | Mapa do site
Microsoft e o logotipo do Office são marcas comerciais ou marcas registradas da Microsoft Corporation nos Estados Unidos e / ou em outros países.
Protegido por Sectigo SSL