Создание динамического эффекта «удаляющаяся и приближающаяся строка» с помощью кода VBA Excel. Анимация в виде удаляющейся и приближающейся строки.
Вводная информация
Помимо классической бегущей строки, в VBA Excel можно создавать и другие увлекательные динамичные текстовые анимации. Один из таких эффектов — «удаляющаяся и приближающаяся строка», который захватывает внимание пользователя за счёт изменения размера текста.
Эффект «удаляющаяся и приближающаяся строка» создает иллюзию движения текста вперед и назад, делая его то меньше, то больше. Это достигается путем последовательного изменения размера шрифта надписи. Для плавности анимации используется функция Timer, которая обеспечивает короткие паузы между шагами изменения размера.
Создание анимации
Процесс создания эффекта удаляющейся и приближающейся строки в VBA Excel довольно прост и состоит из нескольких шагов:
- Создание пользовательской формы
Сначала вам потребуется создать новую пользовательскую форму (UserForm) в вашем проекте VBA.
Нажмите Alt + F11, чтобы открыть редактор VBA. В окне «Project Explorer» (Обозреватель Проекта) щелкните правой кнопкой мыши по вашему файлу Excel, выберите «Insert» (Вставить) -> «UserForm». - Размещение кода в модуле формы
После создания формы скопируйте и вставьте следующий ниже код в её модуль. Чтобы открыть модуль формы, дважды щелкните по вашей UserForm в «Project Explorer».
Код VBA Excel для вставки в модуль формы:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
Option Explicit 'Объявляем переменную для создания метки Private lblStroka As MSForms.Label 'Объявляем переменную для создания кнопки "Пуск" с поддержкой событий Private WithEvents cmdPusk As MSForms.CommandButton Private Sub cmdPusk_Click() Dim i As Integer, Start As Single, Pause As Single 'Удаляющаяся строка lblStroka.Caption = "Удаляющаяся строка" For i = 180 To 5 Step -1 lblStroka.Font.Size = i / 5 Start = Timer Pause = 0.02 Do While Timer < Start + Pause DoEvents Loop Next 'Приближающаяся строка lblStroka.Caption = "Приближающаяся строка" For i = 5 To 180 Step 1 lblStroka.Font.Size = i / 5 Start = Timer Pause = 0.02 Do While Timer < Start + Pause DoEvents Loop Next lblStroka.Caption = "Неподвижная строка" End Sub Private Sub UserForm_Initialize() With Me .Caption = "Удаляющаяся и приближающаяся строки" .Height = 200 .Width = 500 Set lblStroka = .Controls.Add("Forms.Label.1") Set cmdPusk = .Controls.Add("Forms.CommandButton.1") End With With lblStroka .Height = 50 .Width = Me.Width .Top = 30 .Left = 0 .Font.Size = 36 .TextAlign = fmTextAlignCenter .Caption = "Неподвижная строка" End With With cmdPusk .Caption = "Пуск" .Height = 28 .Width = 80 .Top = 120 .Left = 216 .Font.Size = 12 End With End Sub |
- Запуск формы
Теперь, когда код размещен, вы можете запустить форму. В редакторе 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. Вы можете поэкспериментировать с размерами шрифта, скоростью анимации и текстом, чтобы создавать уникальные визуальные элементы для ваших форм.