Найти в Дзене
VBA Excel с нуля

VBA Excel № 98. Активация событий объекта Application в VBA.

Для начала небольшая сказка: Представь, что твой робот – это большой кибернетический друг, а внутри него есть маленькие роботы, каждый из которых отвечает за свою специальную задачу. 1. Создание "Модуля класса": - Для начала, ты создаешь особенное отделение внутри своего робота. Давайте назовем его "Отделение для Умных Дел" или что-то подобное. 2. Присвоение имен "Маленьким Роботам" внутри: - В этом отделении у тебя есть несколько маленьких роботов, каждый со своим именем и своей работой. Например, один может быть "Рисовальщик", а другой "Считальщик". 3. Объявление "Главного Робота" с ключевым словом "С Событиями": - Теперь, ты говоришь своему главному роботу (твоему кибернетическому другу), что у вас внутри есть особенные маленькие роботы, и они умеют делать важные вещи. Ты используешь ключевое слово "С Событиями" для того, чтобы твой главный робот мог замечать, когда что-то происходит внутри маленьких роботов. 4. Создание "Маленьких Роботов" в общем "Отделении": - Теперь ты можешь со
Оглавление
Скриншот с моего ноутбука
Скриншот с моего ноутбука

Для начала небольшая сказка:

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

1. Создание "Модуля класса":

- Для начала, ты создаешь особенное отделение внутри своего робота. Давайте назовем его "Отделение для Умных Дел" или что-то подобное.

2. Присвоение имен "Маленьким Роботам" внутри:

- В этом отделении у тебя есть несколько маленьких роботов, каждый со своим именем и своей работой. Например, один может быть "Рисовальщик", а другой "Считальщик".

3. Объявление "Главного Робота" с ключевым словом "С Событиями":

- Теперь, ты говоришь своему главному роботу (твоему кибернетическому другу), что у вас внутри есть особенные маленькие роботы, и они умеют делать важные вещи. Ты используешь ключевое слово "С Событиями" для того, чтобы твой главный робот мог замечать, когда что-то происходит внутри маленьких роботов.

4. Создание "Маленьких Роботов" в общем "Отделении":

- Теперь ты можешь создавать разных маленьких роботов в своем отделении. Например, "Рисовальщик" может рисовать красивые картинки, а "Считальщик" может уметь считать.

5. Связывание "Главного Робота" с "Маленькими Роботами":

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

6. Создание "Событий" для "Маленьких Роботов":

- Наконец, каждый маленький робот может иметь свои особенные "события", когда он что-то важное делает. Например, когда "Рисовальщик" заканчивает рисунок, это может быть событие.

Суть сказки, что модуль класса внутри твоего робота, это как отделение с маленькими роботами, которые умеют делать разные вещи. Главный робот следит за ними и реагирует на их действия.

Для активации событий объекта Application в среде разработки VBA выполните следующие шаги:

1. Создание модуля класса:

Создайте новый модуль класса, который будет использоваться для обработки событий объекта Application.

Скриншот с моего ноутбука
Скриншот с моего ноутбука

2. Присвоение имени модулю класса:

В окне "Свойства" (Properties) присвойте имя созданному модулю класса. По умолчанию VBA может использовать имена вроде Class1, Class2 и так далее.

Рекомендуется присвоить более описательное имя, я назвал, «ClassApp», чтобы лучше отражать его предназначение.

Скриншот с моего ноутбука
Скриншот с моего ноутбука

3. Объявление глобального объекта Application с ключевым словом WithEvents:

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

Скриншот с моего ноутбука
Скриншот с моего ноутбука

4. Создание переменной для ссылки на объект Application:

Создайте переменную, которая будет использоваться в модуле класса в качестве ссылки на объект Application. Это должна быть переменная уровня модуля, объявленная в обычном модуле VBA (не в модуле класса).

Скриншот с моего ноутбука
Скриншот с моего ноутбука

5. Связывание переменной с объектом Application:

Обычно это выполняется в процедуре Workbook_Open. Свяжите объявленную переменную с объектом Application, через простую процедуру «Вызов».

Скриншот с моего ноутбука
Скриншот с моего ноутбука

А вызывать мы её будем в процедуре Workbook_Open (в модуле ЭтаКнига).

Скриншот с моего ноутбука
Скриншот с моего ноутбука

6. Создаём процедуру «Приветственное_сообщение»

Скриншот с моего ноутбука
Скриншот с моего ноутбука

7. Создание процедур-обработчиков событий для объекта «ClassApp» в модуле класса:

В модуле класса создаём процедуру-обработчик событий для объекта Application.

Скриншот с моего ноутбука
Скриншот с моего ноутбука

И при открытии файла:

Скриншот с моего ноутбука
Скриншот с моего ноутбука