Всем привет! В одном из предыдущих обзоров мы рассматривали пример визуальной анимации на графиках.
В продолжение темы представляем пошаговый алгоритм позволяющий создать визуальную анимацию при сравнении данных.
📢 Файл с исходным кодом размещен в конце статьи 🔽
▶️ Исходные данные
Для данного примера будем использовать следующие данные:
Цель: визуализировать сравнение объема продаж в зависимости от выбранного товара и периода
▶️ Создание объекта анимации
Используя стандартные фигуры Excel подготовим объект для анимации:
Т.к. анимироваться будет только верхняя часть сгруппируем данные элементы и присвоим группе имя, которое в дальнейшем будем использовать в макросе:
▶️ Подготовительные действия
Подготовим таблицу с критериями выбора,
где месяц и товар будут выбираться из выпадающего списка:
Численные значения объема продаж для каждого месяца определим формулой используя функции ИНДЕКС и ПОИСКПОЗ:
Так же следует определить коэффициент для угла поворота фигуры при анимации. Вынесем данное значение в "служебную" ячейку:
Для отображения текстовых значений свяжем соответствующие ячейки:
Теперь когда все подготовительные действия выполнены остается добавить макрос!
▶️ Макрос для визуальной анимации
Данный макрос позволяет изменить угол поворота графика с заданного начального значения до указанного конечного значения с плавным переходом между углами поворота.
📝 Переменные:
- temp задает величину шага для анимации поворота;
- corner хранит текущее значение угла поворота;
- newcorner хранит новое значение угла поворота, которое нужно достичь.
📝 Как работает макрос:
- Когда происходит изменение значений в ячейках D4, B3 или C3, макрос запускается автоматически. Текущее значение угла поворота объекта анимации считывается из ячейки C5 и значение нового угла поворота из ячейки B5.
- В цикле меняем угол поворота от текущего значения до нового значения с определенным шагом. В каждой итерации цикла макрос изменяет угол поворота и обновляет значение в ячейке C5, чтобы отображать текущий угол поворота.
- Цикл продолжается, пока не достигнуто конечное значение угла поворота, и тем самым создается анимация перехода.
🔔 Важно! Убедитесь, что на листе есть объект анимации, и его имя "my_chart". Если задано другое имя, замените "my_chart" на имя вашего объекта анимации в коде макроса.
▶️ Тестируем результат
📽 См. видео пример 🔽
На наш взгляд получилось здорово! 🤗 А как вам? Пишите ваше мнение в комментариях 💬
📚 Наши рекомендации 🔽