Продолжим рассматривать способы вызова и выполнения процедур Sub в VBA.
1. Вызов процедуры Sub из другой процедуры
2. Выполнение процедуры Sub по щелчку на объекте
3. Выполнение процедуры Sub по событию
4. Выполнение процедуры Sub в окне отладки (см. статью №48)
Вызов процедуры Sub из другой процедуры:
Один из наиболее распространенных способов выполнения процедуры Sub - это вызов ее из другой процедуры. Это позволяет вам структурировать код, разделять его на более мелкие блоки и избегать дублирования кода.
Пример вызова процедуры Sub из другой процедуры:
- Sub ПерваяПроцедура()
- ' Код первой процедуры
- ВтораяПроцедура ' Вызов второй процедуры
- End Sub
- Sub ВтораяПроцедура()
- ' Код второй процедуры
- End Sub
В этом примере есть две процедуры Sub: ПроцедураА и ПроцедураБ. Для вызова ПроцедурыА из ПроцедурыБ следуйте этим шагам:
- ПроцедураБ начинает выполнение и выводит сообщение "Процедура Б начала выполнение."
- Затем, с использованием ПроцедураА, вызывается Процедурой А.
- ПроцедураА выполняется и выводит сообщение "Процедура А была вызвана."
- После выполнения ПроцедурыА, управление возвращается в ПроцедуруБ, которая выводит сообщение "Процедура Б завершила выполнение."
Таким образом, вызов ПроцедурыА из ПроцедурыБ происходит внутри кода ПроцедурыБ. Вы можете вызывать процедуры внутри других процедур в зависимости от вашей логики и потребностей, и это позволяет структурировать ваш код более эффективно, избегать повторения одного и того же кода и улучшать читаемость и обслуживаемость вашего проекта VBA.
Выполнение процедуры Sub по щелчку на объекте (к тому также можно отнести и Выполнение процедуры Sub по событию)
Для выполнения процедуры Sub по щелчку на объекте, таком как кнопка, изображение или другой элемент управления в приложениях Microsoft Office (например, Excel или Word), вы можете использовать обработчики событий. Вот как это можно сделать:
1. Создание объекта (например, кнопки) на листе:
В Excel или Word, создайте объект, на который пользователь будет кликать. Например, вы можете добавить кнопку с помощью элемента управления ActiveX или добавить изображение.
2. Назначение макроса (процедуры Sub) объекту:
- Выделите объект, на который пользователь будет кликать.
- Перейдите во вкладку "Разработчик" (Developer) (если у вас нет этой вкладки, ее можно активировать в настройках Excel или Word).
- В вкладке "Разработчик," выберите "Вставка" (Insert) и добавьте соответствующий элемент управления (например, кнопку ActiveX или изображение).
- Правой кнопкой мыши щелкните на этом элементе и выберите "Свойства" (Properties).
- В окне "Свойства," найдите свойство "щелчок" (OnAction) и введите имя вашей процедуры Sub, которую вы хотите выполнить по щелчку на объекте.
3. Создание процедуры Sub для выполнения:
Создайте процедуру Sub в вашем VBA-проекте. Например:
- Sub МояПроцедура()
- ' Код вашей процедуры
- MsgBox "Процедура выполнена!"
- End Sub
4. Запустите выполнение макроса:
Теперь, когда пользователь щелкает на объекте, который вы создали, процедура Sub "МояПроцедура" будет выполнена, и в данном случае, отобразит сообщение "Процедура выполнена!"