Как отметить первое и последнее значение на графике

Что делает макрос: Один из распространенных способов сосредоточиться на диаграмме — это ограничить метки данных в ключевых моментах — как правило, первой и последней точки данных.
Макрос автоматизирует добавление меток, помогает отметить первое и последнее значение графика.

Как макрос работает

Все графики имеют объект SeriesCollection, который содержит различные серии данных.
Этот макрос проходит через все серии, в результате чего каждая из них попадает в фокус по одному разу.

Код макроса

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. Шаг 1 объявляет две переменные. Мы используем oChart в качестве контейнера для памяти нашей диаграммы, MySeries в качестве контейнера памяти для каждой серии в нашем графике.
  2. Шаг 2 устанавливает переменную oChart в ActiveChart. Если диаграмма не выбрана, то выдается ошибка. Именно поэтому мы используем On Error Resume Next Statement. Это говорит Excel продолжить макрос, если есть ошибка.
  3. Шаг 3 проверяет, заполняется ли переменная oChart объектом диаграммы. Если переменная oChart устанавливается в Nothing, ни один график не был выбран перед запуском макроса. Если это так, то мы говорим об этом пользователю в окне сообщения, а затем мы выходим из процедуры.
  4. Шаг 4 запускает цикл через все активные графики SeriesCollection.
  5. Если метки данных уже существуют, нам нужно очистить их. Мы можем сделать это с помощью xlDataLabelsShowNone.
  6. Каждая серия данных имеет коллекцию, которая содержит все точки данных для диаграммы. Как и большинство коллекций в объектной модели Excel, точки данных имеют номера индексов.
    Шаг 6 использует номера индексов, чтобы добраться до первой и последней точек данных. Первая точка данных проста; мы фиксируем её с помощью MySeries.Points. После того, как мы имеем ее в фокусе, мы можем использовать метод ApplyDataLabels для включения меток данных для этой одной точки.
    Последняя метка данных немного сложнее. Мы используем MySeries.Points.Count, чтобы получить максимальное количество точек данных в серии. То есть порядковый номер последней точки данных. Мы ставим последнюю точку данных в фокусе, а затем применяем к ней ярлыки. И, наконец, мы регулируем форматирование на метках данных, таким образом чтобы они имели жирный шрифт.
  7. Шаг 7 Повторяет цикл. После того, как мы прошли через все ряды данных в таблице, конец макроса.

Как использовать

  1. Активируйте редактор Visual Basic, нажав ALT + F11.
  2. Щелкните правой кнопкой мыши имя проекта / рабочей книги в окне проекта.
  3. Выберите Insert➜Module.
  4. Введите или вставьте код.

Если вы не видите personal.xlb в окне своего проекта, он еще не существует. Вы должны будете записать макрос, используя Персональную книгу макросов в качестве места назначения.
Чтобы записать макрос в личную книгу макросов, выберите параметр «Персональная книга макросов» в диалоговом окне «Запись макроса» перед началом записи. Вы можете отказаться от записи макрос и замените его на этот.

Оцените статью
Добавить комментарий