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

VBA Excel. ListView в режиме значков

    Использование ListView в режиме значков на форме VBA Excel. Примеры заполнения ListView в режимах lvwIcon и lvwSmallIcon.

    ListView в режиме значков — продолжение статьи Элемент управления ListView.

    Подготовка среды VBA

    Подключите библиотеку, содержащую элементы ListView и ImageList:

    • Откройте редактор VBA (Alt + F11).
    • В меню выберите Tools → References.
    • Установите флажок на библиотеке: Microsoft Windows Common Controls 6.0 (SP6) — именно она содержит элементы ListView и ImageList.
    • Сохраните, нажав «ОК».

    Добавление ListView на форму

    • Создайте новую форму (Insert → UserForm).
    • Если панели элементов управления не видно, откройте ее (View → Toolbox).
    • Щелкните правой кнопкой мыши на панели элементов управления и выберите «Additional Controls…» (Дополнительные элементы управления…).
    • Найдите «Microsoft ListView Control» и «Microsoft ImageList Control», добавьте их на панель.
    • Перетащите элементы ListView, ImageList и CommandButton с панели элементов на вашу UserForm.

    Пример формы с элементами ListView, ImageList и CommandButton
    Пример формы с элементами ListView, ImageList и CommandButton

    ListView в режиме lvwSmallIcon

    Запуск формы с ListView в режиме lvwSmallIcon:

    Шаг 1. Создайте несколько иконок (в примере их 5 штук, но вы можете увеличить или уменьшить их количество, подредактировав код). Я использовал в качестве значков файлы .ico размером 96×96. Для конвертации файлов других форматов в .ico хорошо подходит бесплатный редактор изображений GIMP.

    Шаг 2. На диске «C» создайте папку с именем «Test» и поместите в неё файлы иконок.

    Шаг 3. В модуль формы вставьте следующий код:

    Запустите форму, нажав на треугольник (Run Sub/UserForm) или на клавишу F5. Вы получите следующий результат работы кода:

    Пример ListView в режиме lvwSmallIcon
    Пример элемента управления ListView в режиме lvwSmallIcon

    Для определения, какой элемент ListView1 выбран, добавьте в модуль формы процедуру для кнопки:

    Теперь при нажатии на кнопку «Выбрать», информационное окно будет выводить текст выбранного элемента.

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

    ListView в режиме lvwIcon

    Для запуска формы с ListView в режиме lvwIcon, замените в блоке «Настройка ListView» строку .View = lvwSmallIcon на строку .View = lvwIcon (было бы правильно ещё в блоке «Привязка ImageList к ListView» заменить строку Set ListView1.SmallIcons = ImageList1 на строку Set ListView1.Icons = ImageList1, но в моей версии VBA это вызывает ошибку). Результат работы кода будет таким:

    Пример ListView в режиме lvwIcon
    Пример элемента управления ListView в режиме lvwIcon

    Что мы здесь видим: небольшие значки с обрезанным текстом внутри, без иконок, и только в выбранном элементе текст отображается полностью. Кнопка «Выбрать» работает так же, как и в предыдущем варианте.

    Заключение

    Режим lvwSmallIcon элемента ListView подходит для:

    • меню запуска макросов (каждый значок — отдельный инструмент);
    • панели выбора отчётов;
    • галереи изображений;
    • навигации по категориям данных.

    С помощью элемента управления ListView в режиме lvwSmallIcon можно сделать формы VBA Excel более наглядными, с удобным визуальным интерфейсом для пользователя с иконками и подписями.


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