Перейти к содержимому
Наше приложение «Дешевые авиабилеты» в AppGallery >>

VBA Excel. Элемент управления TreeView

    Элемент управления пользовательской формы TreeView, предназначенный для создания древовидной (иерархической) структуры. Примеры кода VBA Excel с TreeView.

    Элемент управления TreeView

    UserForm.TreeView – это элемент управления пользовательской формы, предназначенный для отображения информации в виде древовидной структуры, аналогичной древовидной иерархии папок в левой части проводника Windows. Каждый элемент древовидной структуры обычно называют узлом, ветвью или пунктом.

    Элемент управления TreeView на пользовательской форме

    Каждый узел (пункт, ветвь) в древовидной структуре может содержать вложенные ветви, которые называются дочерними узлами. Узлы, содержащие дочерние пункты, называются родительскими. Их можно показывать как в развернутом, так и в свернутом виде.

    Пункты элемента управления TreeView можно выбирать и привязывать к этому событию другие процедуры или строки кода VBA Excel. Рядом с ветвями иерархической структуры можно включить отображение флажков (CheckBox).

    Добавление TreeView на Toolbox

    Изначально на панели инструментов Toolbox нет ссылки на элемент управления TreeView, поэтому ее нужно добавить самостоятельно.

    Чтобы добавить TreeView на панель инструментов Toolbox, кликните по ней правой кнопкой мыши и выберите из контекстного меню ссылку «Additional Controls…»:

    В открывшемся окне «Additional Controls» из списка дополнительных элементов управления выберите строку «Microsoft TreeView Control»:

    Нажмите кнопку «OK» и значок элемента управления TreeView появится на панели инструментов Toolbox:

    Для работы кода VBA Excel с элементом управления TreeView необходимо добавить ссылку на библиотеку Microsoft Windows Common Controls 6.0 (SP6) (цифры у вас могут быть другие). Подключается ссылка в окне «References VBAproject», перейти в которое можно через главное меню редактора: Tools–>References…

    Свойства древовидной структуры

    Свойство Описание
    Appearance Внешний вид древовидной структуры (наличие 3D-рамки). По умолчанию cc3D (1) — рамка есть, ccFlat (0) — рамки нет.
    BorderStyle Отображение границ элемента управления TreeView. По умолчанию ccNone (0) — границ нет, ccFixedSingle (1) — границы есть.
    CheckBoxes Отображение флажков (CheckBox) рядом с узлами иерархической структуры. По умолчанию False — флажков нет, True — флажки есть.
    ControlTipText Текст всплывающей подсказки при наведении курсора на TreeView.
    Enabled Возможность раскрытия узлов и их выбора. True — перечисленные опции включены, False — выключены.
    Font Шрифт, начертание и размер текста узлов древовидной структуры.
    FullRowSelect Определяет область выбора и подсвечивания выбранной строки. По умолчанию False — область выбора ограничена текстом, True — область выбора распространяется на всю строку.
    Height Высота элемента управления TreeView.
    HotTracking Выделение узла подчеркиванием при наведении на него курсора. По умолчанию False — нет подчеркивания, True — есть подчеркивание.
    Left Расстояние от левого края внутренней границы пользовательской формы до левого края иерархической структуры.
    LineStyle Задает стиль веток. По умолчанию tvwTreeLines (0) — навигационные линии отображаются только у дочерних узлов, tvwRootLines (1) — навигационные линии отображаются у всех узлов.
    Nodes Возвращает коллекцию узлов.
    SelectedItem Возвращает выделенный пункт.
    Sorted Задает или отменяет автоматическую сортировку узлов элемента управления TreeView. По умолчанию False — сортировка отключена, True — сортировка включена.
    Style Задает стиль древовидной структуры. Она может состоять только из текста или из текста с дополнениями в разных комбинациях: навигационные линии, раскрывающие ветку плюсы, иконки — всего 8 задающих стиль констант.
    TabIndex Определяет позицию элемента управления в очереди на получение фокуса при табуляции, вызываемой свойством AutoTab или нажатием клавиш «Tab», «Enter». Отсчет начинается с 0.
    Top Расстояние от верхнего края внутренней границы пользовательской формы до верхнего края элемента управления.
    Visible Видимость элемента управления. True – TreeView отображается на пользовательской форме, False – TreeView скрыт.
    Width Ширина элемента управления.

    Программное создание узлов

    Создание узлов элемента управления TreeView программным способом в VBA Excel.

    Синтаксис

    Свойство Nodes объекта TreeView возвращает коллекцию узлов, а метод Nodes.Add добавляет в коллекцию новый узел. Обязательным параметром является только Text.

    Параметры

    Параметр Описание
    Relative Уникальный ключ (Key) узла, относительно положения которого будет размещен новый пункт в соответствии с аргументом Relationship.
    Relationship Задает положение добавляемого узла относительно ветки, указанной аргументом Relative.
    Key Уникальный ключ (имя) создаваемого узла.
    Text Отображаемый текст узла (ветки, пункта). Обязательный параметр.
    Image Рисунок (иконка), который будет отображается перед узлом по умолчанию
    SelectedImage Рисунок (иконка), который заменит Image при выборе узла.

    Константы, которые применяются в качестве аргументов параметра Relationship:

    Константа Значение Описание
    tvwFirst 0 Новый узел помещается перед всеми узлами того уровня, на котором находится узел, указанный аргументом Relative.
    tvwLast 1 Новый узел помещается после всех узлов того уровня, на котором находится узел, указанный аргументом Relative.
    tvwNext 2 Новый узел помещается после узла, указанного аргументом Relative (значение по умолчанию).
    tvwPrevious 3 Новый узел помещается перед узлом, указанным аргументом Relative.
    tvwChild 4 Новый узел создается как дочерний для узла, указанного аргументом Relative.

    Примеры кода VBA Excel с TreeView

    Пример 1

    Пример создание одного узла первого уровня. Для реализации примера необходима пользовательская форма с размещенным на ней элементом управления TreeView1.

    Результат работы кода:

    Пример 2

    Генерация пяти узлов первого уровня с помощью кода VBA Excel. Для реализации примера необходима пользовательская форма с размещенным на ней элементом управления TreeView1.

    Результат работы кода:

    Пример 3

    Создание узлов первого, второго и третьего уровней. Для реализации примера необходима пользовательская форма с размещенным на ней элементом управления TreeView1.

    Результат работы кода:

    Пример 4

    Заполнение текстового поля в зависимости от выбранного пункта древовидной структуры с помощью кода VBA Excel. Для реализации примера необходима пользовательская форма с размещенными на ней элементами управления TreeView1 и TextBox1.

    Данные для иерархической структуры и текстового поля содержатся в следующей таблице, размещенной на активном рабочем листе:

    Код VBA Excel для создания узлов элемента управления TreeView1 с текстом из ячеек первого столбца таблицы:

    Код VBA Excel для заполнения текстового поля TextBox1 в зависимости от выбранного пункта древовидной структуры:

    Результат работы кода:


    Содержание рубрики VBA Excel по тематическим разделам со ссылками на все статьи.