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

VBA Excel. Удаляющаяся и приближающаяся строка

    Создание динамического эффекта «удаляющаяся и приближающаяся строка» с помощью кода VBA Excel. Анимация в виде удаляющейся и приближающейся строки.

    Вводная информация

    Помимо классической бегущей строки, в VBA Excel можно создавать и другие увлекательные динамичные текстовые анимации. Один из таких эффектов — «удаляющаяся и приближающаяся строка», который захватывает внимание пользователя за счёт изменения размера текста.

    Эффект «удаляющаяся и приближающаяся строка» создает иллюзию движения текста вперед и назад, делая его то меньше, то больше. Это достигается путем последовательного изменения размера шрифта надписи. Для плавности анимации используется функция Timer, которая обеспечивает короткие паузы между шагами изменения размера.

    Создание анимации

    Процесс создания эффекта удаляющейся и приближающейся строки в VBA Excel довольно прост и состоит из нескольких шагов:

    1. Создание пользовательской формы
      Сначала вам потребуется создать новую пользовательскую форму (UserForm) в вашем проекте VBA.
      Нажмите Alt + F11, чтобы открыть редактор VBA. В окне «Project Explorer» (Обозреватель Проекта) щелкните правой кнопкой мыши по вашему файлу Excel, выберите «Insert» (Вставить) -> «UserForm».
    2. Размещение кода в модуле формы
      После создания формы скопируйте и вставьте следующий ниже код в её модуль. Чтобы открыть модуль формы, дважды щелкните по вашей UserForm в «Project Explorer».


    Код VBA Excel для вставки в модуль формы:

    1. Запуск формы
      Теперь, когда код размещен, вы можете запустить форму. В редакторе VBA выберите вашу UserForm в «Project Explorer» и нажмите кнопку «Run Sub/UserForm» (зеленый треугольник) или нажмите F5.

    Вы увидите форму с надписью «Неподвижная строка» и кнопкой «Пуск». Вот как это может выглядеть:

    Форма для демонстрации эффекта удаляющейся и приближающейся строки

    Нажмите «Пуск», чтобы увидеть анимацию в действии.

    Объяснение кода

    Пояснения к коду VBA Excel, создающему эффект удаляющейся и приближающейся строки:

    • Подпрограмма UserForm_Initialize выполняется при первом запуске формы. Она динамически создает текстовую метку (lblStroka) и кнопку «Пуск» (cmdPusk), устанавливает их размеры, позиции и начальный текст. Это удобно, так как вам не нужно вручную добавлять эти элементы на форму в режиме дизайна.
    • Подпрограмма cmdPusk_Click активируется, когда пользователь нажимает кнопку «Пуск».
    • В цикле «Удаляющаяся строка» размер шрифта (lblStroka.Font.Size) постепенно уменьшается с 36 до 1, создавая эффект «удаления».
    • Цикл «Приближающаяся строка» увеличивает размер шрифта с 1 до 36, имитируя «приближение» строки.
    • Строки Start = Timer и Do While Timer < Start + Pause отвечают за создание небольшой задержки между каждым шагом изменения размера шрифта.
    • DoEvents позволяет Excel обрабатывать другие события во время паузы, предотвращая «зависание» приложения.
    • Строка lblStroka.Font.Size = i / 5 (деление на 5) используется для более мелкого шага изменения размера шрифта, что делает анимацию более плавной. То есть, изменение шрифта с 36 до 1 и с 1 до 36 происходит не за 35 шагов, а за 175. На самом деле, циклы делают на один шаг больше (176), но первая итерация задаёт тот же размер шрифта, который уже есть у заданной строки.

    Для наглядности тексты неподвижной, удаляющейся и приближающейся строк различны, поэтому заголовок формы взят следующий: «Удаляющаяся и приближающаяся строки», где строки — во множественном числе.


    Анимация в виде удаляющейся и приближающейся строки — это простой, но эффективный способ продемонстрировать увлекательный эффект на пользовательской форме VBA Excel. Вы можете поэкспериментировать с размерами шрифта, скоростью анимации и текстом, чтобы создавать уникальные визуальные элементы для ваших форм.


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