События в Excel

Термин "Событие Excel» используется для обозначения определенных действий, выполняемых пользователем в Excel. Например, когда пользователь переключает лист книги, это событие. Ввод данных в ячейку или сохранение книги также являются событиями Excel.

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

Например, чтобы макрос запускался каждый раз, когда пользователь переключает лист в книге Excel, вы должны создать код VBA, который будет запускаться каждый раз, когда происходит событие. ЛистАктивировать рабочая тетрадь.

А если вы хотите, чтобы макрос запускался каждый раз, когда вы переходите к определенному листу (например, Sheet1), то код VBA должен быть связан с событием активировать для этого листа.

Код VBA, предназначенный для обработки событий Excel, необходимо поместить в соответствующий объект листа или книги в окне редактора VBA (редактор можно открыть, щелкнув Alt + F11). Например, код, который должен выполняться каждый раз, когда происходит определенное событие на уровне листа, должен быть помещен в окно кода для этого листа. Это показано на рисунке:

В редакторе Visual Basic вы можете просмотреть набор всех событий Excel, доступных на уровне книги, листа или диаграммы. Откройте окно кода для выбранного объекта и выберите тип объекта в раскрывающемся меню слева в верхней части окна. В правом раскрывающемся меню в верхней части окна будут показаны события, определенные для этого объекта. На рисунке ниже показан список событий, связанных с листом Excel:

События в Excel

Нажмите на нужное событие в правом выпадающем меню, и процедура будет автоматически вставлена ​​в окно кода для этого объекта. ниже. во главе процедуры ниже Excel автоматически вставит необходимые аргументы (если есть). Остается только добавить код VBA, чтобы определить, какие действия должна выполнить процедура при обнаружении нужного события.

Пример

В следующем примере каждый раз, когда выбирается ячейка B1 на листе Sheet1 появится окно сообщения.

Чтобы выполнить это действие, нам нужно использовать событие рабочего листа Выбор_Изменить, которое происходит каждый раз, когда изменяется выделение ячейки или диапазона ячеек. Функция Выбор_Изменить получает в качестве аргумента цель объект -. Так мы узнаем, какой диапазон ячеек был выбран.

События Выбор_Изменить происходит при любом новом выборе. Но нам нужно, чтобы набор действий выполнялся только при выделении ячейки. B1. Для этого мы будем отслеживать событие только в указанном диапазоне. цель. Как это реализовано в программном коде показано ниже:

'Код для отображения окна сообщения при выборе ячейки B1' на текущем листе. Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'Проверьте, выбрана ли ячейка B1. Если Target.Count = 1 и Target.Row = 1 и Target.Column = 2. Затем 'Если выбрана ячейка B1, выполните следующее MsgBox: «У вас есть выбрал ячейку B1" End If End Sub

Оставьте комментарий