Как реализовать через макросы меню вкладок, в котором переключается отображение содержимого - диаграмм, изображений, схем и объектов SmartArt и т.п.
Порой, работая в Экселе, возникает необходимость разместить самые необходимые данные в поле зрения, минимизируя прокрутку и движения с листа на лист. Это может потребоваться в шаблоне, в котором вы ежедневно делаете какую-то аналитику или, скажем, вам поставлена задача сформировать отчет руководству, который был бы не перегружен информативно, читабельным и удобным.
Размышляя над одной из таких дилемм, я реализовал аналог меню вкладок с помощью макросов и свойства «на передний план» для объектов Экселя. Суть идеи сводится к тому, что берется несколько объектов, например графиков, задается им одинаковый размер и они накладываются один на другой, при этом важно, чтобы у этих объектов заливка не была прозрачной, а затем через кнопку с макросом нужному объекту задается свойство «на передний план» и именно таким образом возникает эффект «загрузки» необходимых данных.
Структура кода, отвечающего за действие по кнопке-переключения вкладки меню:
Sub TabMenu1()
ActiveSheet.ChartObjects("Диаграмма 1").Activate ' выделяем обьект
ActiveSheet.Shapes("Диаграмма 1").ZOrder msoBringToFront ' задаем свойство "на передний план"
Range("F10").Select ' выделяем ячейку скрытую за диаграмой, чтобы работала смена указателя мышки при наведении на следующую кнопку
End Sub
Пример меню вкладок в файле Эксель вы можете скачать вначале и в конце статьи, через кнопку DOWNLOAD SOURCE
Инструкция для формирования такого меню (не требует знания макросов VBA)
1. Создаем несколько диаграмм (вместо диаграмм могут быть рисунки, фигуры, объекты SmartArt) и убеждаемся, что все они одинакового размера
2. Затем запускаем макрорекордер для начала записи макроса
3. Выделяем объект (в нашем случае диаграмму) и в вкладке Формат задаем свойство «На передний план»
4. Прекращаем запись макроса.
5. Пункты 2-4 повторяем для всех обьектов, чтобы записать сценарий выполнения макроса для каждой требуемой диаграммы.
6. Через вкладку Вставка нарисуем столько же прямоугольников, сколько диаграмм, которые планируем переключать. Прямоугольники будут кнопками-переключателями.
7. В каждом прямоугольнике добавим текст с заголовком, той диаграммы, которую хотим «включать» этой кнопкой.
8. Затем снова выделяем каждый прямоугольник-кнопку, жмем правую кнопку мыши и в выпадающем списке нажимаем «Назначить макрос…», после чего откроется окно со списком макросов, выбираем нужный макрос и нажимаем кнопку ОК
9. С зажатой кнопкой Shift выделяем левой кнопкой мыши все диаграммы и в вкладке Формат нажимаем сначала «Выровнять по левому краю», затем «Выровнять по верхнему краю», таким образом у нас все диаграммы окажутся одна над другой, а сверху будет та, которой последней задавалось свойство «На передний план»
10. После всех проделанных манипуляций, остается только разместить кнопки и диаграммы так чтобы вам было как можно удобнее, а также настроить внешний вид кнопок и диаграмм по вашему вкусу.