Какая польза в анимации графиков?
Помимо того, что она делает вашу презентацию или отчет более привлекательными, анимация может помочь вашей аудитории лучше понять изменение данных во времени или при различных сценариях. Это также может быть отличным инструментом для демонстрации трендов, сравнения значений или прогнозирования будущих данных.
Целью сегодняшнего обзора является разбор решения позволяющего настроить визуальное представление изменений в данных путем анимации.
Вы научитесь создавать пошаговое изменение значений заголовков диаграммы, что позволит нам создать плавную анимацию, отражающую изменение данных на графике.
Готовы взглянуть на данные в движении? Тогда давайте начнем!
📢 Файл с примером размещен в конце статьи 🔽
▶️ Пример кода
Макрос позволяет пошагово изменять значения ячеек заголовков диаграммы для создания визуальной анимации при построении графиков:
🔘 Основные этапы:
- Объявление Option Explicit. Это директива, которая обязывает объявлять все переменные, прежде чем использовать их. Это помогает избежать ошибок в написании названий переменных и улучшает структуру кода.
- Прорисовку графика осуществляют макросы: MacroS1, MacroS2 и MacroS3. Каждая из этих процедур вызывает подпрограмму my_Charts_ с разными аргументами (4, 5 и 6 соответственно).
- my_Charts_ принимает один аргумент nRow типа Long и содержит код для работы с ячейками и графиками на активном листе. Эта подпрограмма отвечает за создание анимации графика на основе данных из указанных строк (4, 5 и 6) и столбцов с 2 по 13.
▶️ Процедура построения анимированных графиков
my_Charts_ является частью макроса и отвечает за построение анимированных графиков на активном листе. Аргумент nRow определяет строку, из которой будут взяты данные для построения графиков.
Внутри процедуры используется цикл For для прохода по столбцам с 2 по 13. В каждой итерации цикла происходит сравнение значений ячейки (nRow, nCol) с значением ячейки (7, nCol) – ячейкой заголовка диаграммы в строке 10. Если значения не совпадают, то происходит пошаговое приближение значения ячейки (7, nCol) к значению ячейки (nRow, nCol) на 1 (единицу):
Такое пошаговое приближение значений позволяет создать визуальную анимацию на графиках, отражающую изменения данных с плавными переходами.
Внутри цикла используется функция DoEvents, которая позволяет обновлять интерфейс Excel и предоставлять пользователю возможность взаимодействия с программой во время выполнения макроса.
▶️ Результат
Процедура my_Charts_ позволяет создать наглядную анимацию графиков и динамично отслеживать изменения в данных.
📽 См. видео пример:
▶️ Особенности и ограничения
🔔 Регулировать плавность анимации вы можете путем изменения шага:
Как видно из представленного кого теперь, если целая часть деления значения ячейки на 10 не равна целой части деления значения ячейки (7, nCol) на 10, то выполняется следующее:
Иными словами, my_Charts_ проходит по значениям в указанных строках и столбцах и округляет их до ближайшего множителя 10 с использованием цикла Do While.
💡 Вы можете поэкспериментировать и установить иное значения (например равное 3, 5, 7 и т.п.). Это позволит подобрать нужную скорость анимации.
⚠️ Однако такой подход имеет свои ограничения.
Увеличение шага приводит скачкообразному отображению графика, а округление значений к некоторой потере точности на графике.
Если целью анимации графиков является наглядное представление изменений в данных, то округление может быть полезным, чтобы упростить отображение значений и сделать график более читаемым.
Однако, если точность данных на графике имеет для вас первостепенное значение, и вы хотите избежать округления и достигнуть плавной анимации рекомендует использовать шаг равный 1.
📍 Рекомендуемые статьи 🔽