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

VBA Excel. Элемент управления ScrollBar (полоса прокрутки)

    Элемент управления пользовательской формы ScrollBar, применяемый в VBA Excel для создания полосы прокрутки. Свойства UserForm.ScrollBar, примеры кода.

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

    UserForm.ScrollBar – это элемент управления пользовательской формы, представляющий из себя полосу прокрутки с кнопками, реагирующий как на перемещение ползунка, так и на нажатие кнопок.

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

    Элемент управления ScrollBar предназначен в VBA Excel для ввода пользователем числовых данных, которые ограничены минимальным и максимальным значениями. Увеличение или уменьшение значения полосы прокрутки осуществляется с указанным шагом при помощи ползунка или кнопок.

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

    Полоса прокрутки в VBA Excel используется в паре с элементом управления TextBox или Label. Вспомогательный элемент необходим, чтобы отобразить текущее значение ScrollBar на пользовательской форме.

    Свойства элемента ScrollBar

    Свойство Описание
    BackColor Цветовое оформление элемента управления.
    Delay* Время между последовательными событиями при удержании кнопки.
    ControlTipText Текст всплывающей подсказки при наведении курсора на полосу прокрутки.
    Enabled Возможность взаимодействия пользователя с элементом управления. True – взаимодействие включено, False – отключено (цвет стрелок становится серым).
    Height Высота элемента управления.
    Left Расстояние от левого края внутренней границы пользовательской формы до левого края элемента управления.
    Max Максимальное значение свойства Value.
    Min Минимальное значение свойства Value.
    Orientation** Задает горизонтальную или вертикальную ориентацию элемента управления ScrollBar.
    SmallChange Шаг изменения значения свойства Value.
    TabIndex Определяет позицию элемента управления в очереди на получение фокуса при табуляции, вызываемой нажатием клавиш «Tab», «Enter». Отсчет начинается с 0.
    Top Расстояние от верхнего края внутренней границы пользовательской формы до верхнего края элемента управления.
    Visible Видимость элемента ScrollBar. True – элемент отображается на пользовательской форме, False – скрыт.
    Width Ширина элемента управления.

    * По умолчанию свойство Delay равно 50 миллисекундам. Это означает, что первое событие (SpinUp, SpinDown, Change) происходит через 250 миллисекунд после нажатия кнопки, а каждое последующее событие – через каждые 50 миллисекунд (и так до отпускания кнопки).

    ** По умолчанию включена автоматическая ориентация, которая зависит от соотношения между шириной и высотой элемента управления. Если ширина больше высоты – ориентация горизонтальная, если высота больше ширины – ориентация вертикальная.

    В таблице перечислены только основные, часто используемые свойства полосы прокрутки. Все доступные свойства отображены в окне Properties элемента управления ScrollBar.

    Примеры кода с полосой прокрутки

    Пример 1

    Условие примера 1

    1. На пользовательской форме VBA Excel расположены элементы управления ScrollBar1 и Label1.
    2. Необходимо задать для полосы прокрутки ScrollBar1 интервал значений от -100 до 100 единиц с шагом 5 и отображением текущего значения на элементе Label1.
    3. При открытии формы полоса прокрутки должна быть установлена на значении 0.

    Решение примера 1

    Первоначальные настройки при открытии пользовательской формы:

    Обработка события Change объекта ScrollBar1:

    Обе процедуры размещаются в модуле пользовательской формы VBA Excel.

    Пример 2

    Условие примера 2

    1. На пользовательской форме расположены элементы управления ScrollBar1 и TextBox1.
    2. Интервал значений для полосы прокрутки ScrollBar1 от 0 до 1000 единиц с шагом 10 и отображение текущего значения в поле элемента TextBox1.
    3. При открытии формы полоса прокрутки должна быть установлена в значение 0.
    4. Установка соответствующего значения полосы прокрутки при ручном изменении содержимого текстового поля.
    5. Предусмотреть сообщение о значении TextBox1, не входящем в интервал значений элемента управления ScrollBar1.

    Решение примера 2

    Первоначальные настройки при открытии пользовательской формы:

    Обработка события Change объекта ScrollBar1:

    Обработка события Change объекта TextBox1:

    Если содержимое элемента управления TextBox1 не соответствует интервалу значений полосы прокрутки, возникает ошибка (преобразование в число происходит автоматически). Чтобы ее избежать и вывести сообщение о недопустимости значения, используется обработчик ошибок.

    Все три процедуры размещаются в модуле пользовательской формы.


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

    5 комментариев для “VBA Excel. Элемент управления ScrollBar (полоса прокрутки)”

    1. Здравствуйте. Как колесом мыши прокручивать?

      1. Евгений

        Здравствуйте, Денис!
        Для элемента управления ScrollBar прокрутка колесиком мыши не предусмотрена.

        1. Спасибо за ответ. Жаль. Так как у вас большой опыт, возможно в комбобокс либо тексбокс вы решали вопрос по использованию колеса мыши?

          1. Евгений

            Денис, мне не приходилось настраивать прокрутку мышью для элементов управления, но вы можете попробовать реализовать прокрутку по этому видео. Ссылка на скачивание файлов под видео в посте автора.

    Обсуждение закрыто.