MyTetra Share
Делитесь знаниями!
Как отметить первое и последнее значение на графике
Время создания: 12.10.2019 20:31
Раздел: !Закладки - VBA - Excel - Графики

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

Автор Дмитрий Якушев На чтение3 мин. Просмотров51

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

Содержание

  1. Как макрос работает
  2. Код макроса
  3. Как этот код работает
  4. Как использовать

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

Все графики имеют объект 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. Шаг 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 в окне своего проекта, он еще не существует. Вы должны будете записать макрос, используя Персональную книгу макросов в качестве места назначения.
Чтобы записать макрос в личную книгу макросов, выберите параметр «Персональная книга макросов» в диалоговом окне «Запись макроса» перед началом записи. Вы можете отказаться от записи макрос и замените его на этот.

 
MyTetra Share v.0.53
Яндекс индекс цитирования