Как отметить первое и последнее значение на графике
Автор Дмитрий Якушев На чтение3 мин. Просмотров51
Что делает макрос: Один из распространенных способов сосредоточиться на диаграмме — это ограничить метки данных в ключевых моментах — как правило, первой и последней точки данных.
Макрос автоматизирует добавление меток, помогает отметить первое и последнее значение графика.
Содержание
- Как макрос работает
- Код макроса
- Как этот код работает
- Как использовать
Как макрос работает
Все графики имеют объект SeriesCollection, который содержит различные серии данных.
Этот макрос проходит через все серии, в результате чего каждая из них попадает в фокус по одному разу.
Код макроса
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 |
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 |
Как этот код работает
- Шаг 1 объявляет две переменные. Мы используем oChart в качестве контейнера для памяти нашей диаграммы, MySeries в качестве контейнера памяти для каждой серии в нашем графике.
- Шаг 2 устанавливает переменную oChart в ActiveChart. Если диаграмма не выбрана, то выдается ошибка. Именно поэтому мы используем On Error Resume Next Statement. Это говорит Excel продолжить макрос, если есть ошибка.
- Шаг 3 проверяет, заполняется ли переменная oChart объектом диаграммы. Если переменная oChart устанавливается в Nothing, ни один график не был выбран перед запуском макроса. Если это так, то мы говорим об этом пользователю в окне сообщения, а затем мы выходим из процедуры.
- Шаг 4 запускает цикл через все активные графики SeriesCollection.
- Если метки данных уже существуют, нам нужно очистить их. Мы можем сделать это с помощью xlDataLabelsShowNone.
- Каждая серия данных имеет коллекцию, которая содержит все точки данных для диаграммы. Как и большинство коллекций в объектной модели Excel, точки данных имеют номера индексов.
Шаг 6 использует номера индексов, чтобы добраться до первой и последней точек данных. Первая точка данных проста; мы фиксируем её с помощью MySeries.Points. После того, как мы имеем ее в фокусе, мы можем использовать метод ApplyDataLabels для включения меток данных для этой одной точки.
Последняя метка данных немного сложнее. Мы используем MySeries.Points.Count, чтобы получить максимальное количество точек данных в серии. То есть порядковый номер последней точки данных. Мы ставим последнюю точку данных в фокусе, а затем применяем к ней ярлыки. И, наконец, мы регулируем форматирование на метках данных, таким образом чтобы они имели жирный шрифт.
- Шаг 7 Повторяет цикл. После того, как мы прошли через все ряды данных в таблице, конец макроса.
Как использовать
- Активируйте редактор Visual Basic, нажав ALT + F11.
- Щелкните правой кнопкой мыши имя проекта / рабочей книги в окне проекта.
- Выберите Insert➜Module.
- Введите или вставьте код.
Если вы не видите personal.xlb в окне своего проекта, он еще не существует. Вы должны будете записать макрос, используя Персональную книгу макросов в качестве места назначения.
Чтобы записать макрос в личную книгу макросов, выберите параметр «Персональная книга макросов» в диалоговом окне «Запись макроса» перед началом записи. Вы можете отказаться от записи макрос и замените его на этот.