Перейти к содержимому

Как создать зависимые выпадающие списки в документе Word?

Author: Siluvia Last Modified: 2025-08-07
Example showing limiting the choices in the second drop-down list based on the selected option in the first drop-down list

Как показано на скриншоте, вы можете захотеть ограничить выбор во втором выпадающем списке на основе выбора, сделанного в первом выпадающем списке. В этой статье показано, как создать зависимые выпадающие списки в документе Word.

Создание зависимых выпадающих списков в Word с помощью кода VBA


Создание зависимых выпадающих списков в Word с помощью кода VBA

Метод VBA, описанный ниже, поможет вам создать зависимый выпадающий список, где второй список изменяется в зависимости от того, что выбрано в первом списке. Следуйте этим шагам:

  1. Убедитесь, что вкладка "Разработчик" видна на ленте Word (если нет, см. руководство Как показать вкладку Разработчик в Word?). Затем вставьте два выпадающих списка, нажав "Разработчик" > "Устаревшие формы" > "Выпадающее поле формы" дважды.
    Developer tab with Legacy Forms selected and Drop-Down Form Field highlighted
  2. Щелкните правой кнопкой мыши первый выпадающий список (это будет родительский список) и выберите "Свойства".
    First drop-down list right-clicked with Properties option selected
  3. В диалоговом окне "Параметры выпадающего поля формы":
    1. Введите категории (например, "Фрукты", "Овощи", "Мясо") в поле "Элемент выпадающего списка" по одному, нажимая "Добавить" после каждого.
    2. Введите "ddfood" в поле "Закладка".
    3. Нажмите "OK".
      Drop-down Form Field Options dialog box
  4. Щелкните правой кнопкой мыши второй выпадающий список, выберите "Свойства", введите "ddCategory" в поле "Закладка" и нажмите "OK".
    Drop-down Form Field Options dialog box
  5. Нажмите Alt + F11, чтобы открыть окно Microsoft Visual Basic для приложений.
  6. В окне VBA нажмите "Вставить" > "Модуль", затем вставьте следующий код:
    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

    Примечания:

    • В коде измените элементы под каждым оператором "Case" в соответствии с вашим содержанием.
    • "ddfood" и "ddCategory" должны соответствовать именам закладок, которые вы ввели в диалоговых окнах "Параметры выпадающего поля формы".
  7. Сохраните код и вернитесь к вашему документу.
  8. Щелкните правой кнопкой мыши первый выпадающий список снова и выберите "Свойства". В появившемся диалоговом окне "Параметры выпадающего поля формы" из выпадающего списка "Выход" выберите имя макроса "Populateddfood", затем нажмите "OK".
    Drop-down Form Field Options dialog box
  9. Нажмите "Разработчик" > "Ограничить редактирование".
    Restrict Editing button on the Developer tab on the ribbon
  10. В панели "Ограничить редактирование":
    1. Отметьте "Разрешить только этот тип редактирования в документе".
    2. Выберите "Заполнение форм" из выпадающего списка.
    3. Нажмите "Да, начать применение защиты".
    4. В диалоговом окне "Начать применение защиты" установите пароль и нажмите "OK".
      Restrict Editing pane and Start Enforcing Protection dialog

Теперь зависимый выпадающий список активен. Когда вы выбираете "Фрукты" в первом списке, во втором списке будут отображаться только варианты фруктов.

Examples showing limiting the choices in the second drop-down list based on the selected option in the first drop-down list

Лучшие инструменты для повышения производительности в Office

Kutools для Word– улучшите свой опыт работы с Word с помощью более чем 100 выдающихся функций!

🤖 Возможности Kutools AI: AI Ассистент / Ассистент в Реальном Времени / Супер Полировка (с сохранением формата) / Супер Перевод (с сохранением формата) / Искусственный интеллект для редактирования / Проверка с помощью ИИ...

📘 Мастерство работы с документами: Разделить страницы / Объединить документы / Экспортировать выделенное в различных форматах (PDF/TXT/DOC/HTML...) / Пакетно преобразовать в PDF...

Редактирование содержимого: Пакетный поиск и замена в нескольких файлах / Изменить размер всех изображений / Транспонировать строки и столбцы таблицы / Преобразовать таблицу в текст...

🧹 Лёгкая очистка: Удалите лишние пробелы / Разрывы разделов / текстовые поля / гиперссылки. Для других инструментов удаления перейдите в группу Удалить...

Творческие вставки: Вставить разделитель разрядов / Флажки / Переключатели / QR-код / Штрихкод / Несколько изображений. Откройте больше возможностей в группе Вставить...

🔍 Точные выделения: Точно определяйте нужные страницы / таблицы / фигуры / абзацы заголовка. Улучшайте навигацию благодаря расширенным функциям Выбрать ...

Уникальные улучшения: Переходите к любому расположению / Автоматически вставляйте повторяющийся текст / Переключайтесь между окнами документа /11 инструментов преобразования...

🌍 Поддержка более40 языков: Используйте Kutools на удобном вам языке – поддерживаются английский, испанский, немецкий, французский, китайский и ещё более40 языков!

Kutools and Kutools Plus tabs on the Word Ribbon
👉 Хотите попробовать эти функции? Скачайте Kutools для Word прямо сейчас! 🚀
 

Лучшие инструменты для повышения производительности в Office

Kutools для Word – 100+ инструментов для Word