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

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

  1. Откройте редактор VBA, нажав Alt + F11.

  2. В окне «Проект» в левой части редактора дважды щелкните имя рабочего листа, на который вы хотите повлиять. (Вам может потребоваться сначала открыть папку VBAProject, а затем открыть в ней папку Microsoft Excel Objects.) Должно появиться окно кода для рабочего листа.

  3. В окне кода используйте правый раскрывающийся список (есть два раскрывающихся списка чуть ниже строки заголовка окна кода), чтобы выбрать параметр «Активировать». В окне кода должен появиться следующий код:

Private Sub Worksheet_Activate()



End Sub
  1. В этой новой подпрограмме введите макрос, который будет выполняться при активации рабочего листа.

  2. Закройте редактор VBA.

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

_Примечание: _

Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.

link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (2564) применим к Microsoft Excel 97, 2000, 2002 и 2003. Вы можете найти версию этого совета для ленточного интерфейса Excel (Excel 2007 и новее) здесь:

link: / excelribbon-Running_a_Macro_when_a_Worksheet_is_Activated [Запуск макроса, когда рабочий лист активирован].