01 Что делает макрос
Чтобы сосредоточится на анализе диаграммы, иногда можно добавить метки только к первой и последней точке данных. Макрос автоматизирует добавление меток, помогает отметить первое и последнее значение графика.
Все графики имеют объект SeriesCollection, который содержит различные серии данных. Этот макрос проходит через все серии, в результате чего каждая из них попадает в фокус по одному разу.
02 Код макроса
Sub
OtmetitNaibolsheeNaimensheeZnacheniyaNaGrafike()
'Шаг 1: Объявляем переменные
Dim
oChart
As
Chart
Dim
MySeries
As
Series
'Шаг 2: Проверяем, выбран ли график
On
Error
Resume
Next
Set
oChart = ActiveChart
'Шаг 3: Выход из макроса, если график не был выбран
If
oChart
Is
Nothing
Then
MsgBox
"График не выбран."
Exit
Sub
End
If
'Шаг 4: Запуск цикла
For
Each
MySeries
In
oChart.SeriesCollection
'Шаг 5: Очистить существующие метки данных
MySeries.ApplyDataLabels (xlDataLabelsShowNone)
'Шаг 6: Добавьте метки к первой и последней точке данных
MySeries.Points(1).ApplyDataLabels
MySeries.Points(MySeries.Points.Count).ApplyDataLabels
MySeries.DataLabels.Font.Bold =
True
'Шаг 7: Перейти к следующей серии
Next
MySeries
End
Sub
03 Как работает макрос
1. Шаг 1 объявляет две переменные. Мы используем oChart в качестве контейнера памяти для нашей диаграммы, MySeries в качестве контейнера памяти для каждой серии в нашем графике.
2. Шаг 2 добавляет в oChart активную диаграмму. Если диаграмма не выбрана, то выдается ошибка. Именно поэтому мы используем On Error Resume Next Statement. Это говорит Excel продолжить макрос даже в случае ошибки.
3. Шаг 3 проверяет, заполнена ли переменная oChart объектом диаграмма. Если переменная oChart ничего не содержит, значит ни один график не был выбран перед запуском макроса. Если это так, то мы говорим об этом пользователю в окне сообщения, а затем мы выходим из макроса.
4. Шаг 4 запускает цикл через все SeriesCollection.
5. Если метки данных уже существуют, нам нужно очистить их. Мы можем сделать это с помощью xlDataLabelsShowNone.
6. Каждая серия данных имеет коллекцию, которая содержит все точки данных для диаграммы. Как и большинство коллекций в объектной модели Excel, точки данных имеют номера индексов.
Шаг 6 использует номера индексов, чтобы добраться до первой и последней точек данных. Первая точка данных проста - мы фиксируем её с помощью MySeries.Points. После того, как мы захватываем ее, мы можем использовать метод ApplyDataLabels для включения меток данных для этой одной точки.
Последняя метка данных немного сложнее. Мы используем MySeries.Points.Count, чтобы получить максимальное количество точек данных в серии. То есть порядковый номер последней точки данных. Мы захватываем последнюю точку данных, а затем добавляем к ней метку данных. И, наконец, мы регулируем форматирование на метках данных, таким образом чтобы они имели жирный шрифт.
7. Шаг 7 Повторяет цикл. После того, как мы прошли через все ряды данных в графике, макрос заканчивается.
04 Как использовать
Для реализации этого макроса, вы можете скопировать и вставить его в стандартный модуль:
1. Активируйте редактор Visual Basic, нажав ALT + F11.
2. Щелкните правой кнопкой мыши имя проекта / рабочей книги в окне проекта.
3. Выберите Insert➜Module.
4. Введите или вставьте код во вновь созданном модуле.
05 Скачать файл
Автор проекта
Дмитрий Якушев
Привет! Меня зовут Дмитрий. С 2014 года Microsoft Cretified Trainer. Вместе с командой управляем этим сайтом. Наша цель - помочь вам эффективнее работать в Excel.
Изучайте наши статьи с примерами формул, сводных таблиц, условного форматирования, диаграмм и макросов. Записывайтесь на наши курсы или заказывайте обучение в корпоративном формате.
Сайт https://akademia-excel.ru/
ИП Якушев Дмитрий Александрович
ОГРНИП: 314501721200022
ИНН: 501706813807
Образовательная лицензия № Л035-01255-50/01194039
Почта: info@akademia-excel.ru
Телефон для связи: + 7 (958) 697-73-88, + 7 (495) 145-23-86
Регистрация на сайте означает согласие с пользовательским соглашением и на получение рассылки и рекламных материалов.
Политика в отношении обработки и защиты персональных данных.
Банковские реквизиты:
Расчетный счет 40802810500000003597
Банк АО «Тинькофф Банк»
Юридический адрес Банка Москва, 123060,1-й Волоколамский проезд, д. 10, стр. 1
Корр. счет Банка 30101810145250000974
ИНН Банка 7710140679
БИК Банка 044525974
Подписывайтесь на нас в соц.сетях:
Сайт https://akademia-excel.ru/
ИП Якушев Дмитрий Александрович
ОГРНИП: 314501721200022
ИНН: 501706813807
Образовательная лицензия № Л035-01255-50/01194039
Банковские реквизиты:
Расчетный счет 40802810500000003597
Банк АО «Тинькофф Банк»
Юридический адрес Банка Москва, 123060,1-й Волоколамский проезд, д. 10, стр. 1
Корр. счет Банка 30101810145250000974
ИНН Банка 7710140679
БИК Банка 044525974
Регистрация на сайте означает согласие с пользовательским соглашением и на получение рассылки и рекламных материалов.
Политика в отношении обработки и защиты персональных данных.
Почта: info@akademia-excel.ru
Телефон для связи: + 7 (958) 697-73-88, + 7 (495) 145-23-86
Написать в тех.поддержку
Подписывайтесь:
авторизуйтесь