Использовать события листа диаграммы (link: / tips-how-to-move-a-chart-to-a-new-sheet-in-excel [рабочий лист, особенно для диаграмм]) довольно просто. Но когда дело доходит до использования событий во встроенных графиках, все не так просто. Но уверяю вас, события со встроенными графиками активировать не так уж и сложно. Это очень похоже на link: / events-in-vba-how-to-create-application-level-events-in-excel-vba [создание событий приложения]. Итак, без дальнейших промедлений, приступим.

Итак, есть два шага, чтобы активировать событие встроенной диаграммы. Во-первых, это создание класса событий диаграммы и определение событий. Во-вторых, создается объект этого класса событий. Вот и все.

Шаг 1: Создайте класс событий диаграммы и определите события

  • Вставьте ссылку: / modules-class-modules-in-vba-vba-class-modules-and-how-to-use-them [class module] `. Назовите его как хотите. Я назвал его ChartClass.

  • Определите переменную события типа Chart с ключевым словом WithEvents.

Private WithEvents CEvents As Chart
  • Инициализировать это событие в подпрограмме class_initialize ().

В раскрывающемся списке слева выберите курс. После этого в верхнем правом раскрывающемся списке выберите инициализировать.

Private Sub Class_Initialize()

Set CEvents = ActiveSheet.ChartObjects(1).Chart

End Sub

Здесь мы инициализируем диаграмму CEvents с первой диаграммой, созданной на этом листе. 1 — это порядковый номер объектов диаграммы на активном листе.

  • Теперь определите события, которые вы хотите использовать. В верхнем левом раскрывающемся списке выберите объект CEvent. Все доступные процедуры обработки событий будут доступны в раскрывающемся меню в правом верхнем углу. Выберите то, что вам нужно, и определите, что вы хотите делать при срабатывании этого события.

Чтобы продемонстрировать использование, я выбираю событие CEvents_Activate. Я попытаюсь показать пользователю, что событие диаграммы активируется в поле сообщения.

Private Sub CEvents_Activate()

MsgBox "The chart Events are working"

End Sub

Наша работа здесь сделана. Здесь вы можете создать сколько угодно событий из доступных событий для типа диаграммы. Но ивенты пока не пройдут, потому что это просто класс. Нам нужно создать объект этого класса в подпрограмме любого нормального модуля или объектного модуля. Затем запустите эту подводную лодку.

После этого наше мероприятие заработает.

image

Шаг 2: Создайте объект класса диаграммы в модуле.

  • Вставить нормальный модуль.

  • Объявите переменную класса, который вы создали ранее.

Dim mychart As ChartClass
  • Создайте подпрограмму и инициализируйте переменную с помощью объекта класса ChartClass.

Sub activateChartEvent()

Set mychart = New ChartClass

End Sub

image

Запустите этот саб, используя F5. Когда вы запустите этот код, события диаграммы будут активны для первой диаграммы на текущем активном листе, поскольку мы использовали эту строку для инициализации диаграммы eventSet CEvents = ActiveSheet.ChartObjects (1) .Chart. * И готово. Теперь, если вы щелкните первую диаграмму на текущем активном листе, появится сообщение о том, что события диаграммы работают.

Включение и выключение событий приложения VBA После запуска макроса в обычном модуле он будет срабатывать всегда, пока вы не закроете книгу, содержащую события. Но вы можете включать и выключать их по своему желанию. Есть два способа сделать это.

Обнулить объект события Установите EnableEvents в значение False

1. Обнуление объекта события

В отдельной подпрограмме установите для объекта события значение Nothing

Private Sub StopEvents()

Set Mychart= Nothing

End Sub

Как только вы запустите этот код, события перестанут работать. Вы можете поместить его в кнопку на листе, чтобы остановить события. Теперь у вас будет две кнопки для запуска и остановки этих конкретных событий. Он просто остановит события, созданные объектом AppE.

2. Установите EnableEvents на False

Второй способ — отключить события. Чтобы все события нельзя было уловить, мы устанавливаем для свойства EnableEvents класса Application значение False.

Private Sub StopEvents()

Application.EnableEvents= False

End Sub

Приведенный выше код отключит все события. Даже стандартные события Excel. Они не будут работать, пока вы их снова не запустите. Даже если вы запустите подпрограмму StartEvents () (см. Выше), событие не сработает. Чтобы все события снова заработали, вам нужно снова установить для свойства EnableEvents значение True.

Поэтому, если вы хотите, чтобы ваши события работали каждый раз, когда вы запускаете события, добавьте эту строку кода в подпрограмму.

Private Sub StartEvents()

Application.EnableEvents = True

Set mychart = New ChartClass

End Sub

image

Так что да, ребята, вот как вы можете использовать событие встроенной диаграммы в Excel.

Сообщите мне, было ли это достаточно пояснительным и помогло ли вам понять события уровня приложения в Excel VBA. Запишите свои мысли в разделе комментариев ниже. Если вам есть что добавить к этому, запишите и это. Вы можете задать свои вопросы, связанные с этой статьей или любой другой темой, связанной с VBA, в разделе комментариев ниже.

Загрузите рабочий файл ниже:

image 48

Статьи по теме:

link: / events-in-vba-the-events-in-excel-vba [События в Excel VBA] | * В Excel существует семь типов событий. Каждое событие имеет разный характер. Событие приложения работает на уровне книги. Рабочая тетрадь на уровне листов. Событие рабочего листа на уровне диапазона.

link: / events-in-vba-the-worksheet-events-in-excel-vba [События рабочего листа в Excel VBA] * | Событие рабочего листа действительно полезно, когда вы хотите, чтобы ваши макросы запускались, когда указанное событие происходит в Лист.

link: / events-in-vba-workbook-events-using-vba-in-microsoft-excel [События книги с использованием VBA в Microsoft Excel] | События книги работают со всей книгой. Поскольку все листы являются частью рабочей книги, эти события работают и с ними.

link: / events-in-vba-prevent-that-an-automacroeventmacro-executes-using-vba-in-microsoft-excel [Предотвратить выполнение automacro / eventmacro с использованием VBA в Microsoft Excel] * | Чтобы предотвратить запуск макроса auto_open, используйте клавишу Shift.

link: / events-in-vba-chart-object-events-using-vba-in-microsoft-excel [События объекта диаграммы с использованием VBA в Microsoft Excel] * | Диаграммы — это сложные объекты, к которым вы прикрепляете несколько компонентов. Для создания событий диаграммы мы используем модуль Class.

Популярные статьи:

link: / keyboard-formula-shortcuts-50-excel-shortcuts-to-повышения-продуктивность [50 сочетаний клавиш Excel для повышения производительности] | Выполняйте свою задачу быстрее. Эти 50 ярлыков сделают вашу работу в Excel еще быстрее.

link: / формулы-и-функции-введение-функции-vlookup [Функция ВПР в Excel] | Это одна из наиболее используемых и популярных функций Excel, которая используется для поиска значений из разных диапазонов и листов.

link: / tips-countif-in-microsoft-excel [COUNTIF в Excel 2016] | Подсчитайте значения с условиями, используя эту удивительную функцию. Вам не нужно фильтровать данные для подсчета определенного значения.

Функция Countif важна для подготовки вашей приборной панели.

link: / excel-formula-and-function-excel-sumif-function [Как использовать функцию СУММЕСЛИ в Excel] | Это еще одна важная функция приборной панели. Это поможет вам суммировать значения для конкретных условий.