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

На самом деле Excel предоставляет два разных способа запуска процедуры при открытии книги. В обоих случаях все, что вам нужно сделать, это указать специальное имя для макроса; это ключ, который сообщает Excel, что вы хотите запустить процедуру при открытии. При желании вы можете назвать процедуру Auto_Open и поместить ее в обычный макромодуль. Вы также можете определить процедуру под названием Workbook_Open в объекте ThisWorkbook.

В качестве примера рассмотрим следующий код:

Sub Auto_Open()

Dim sMsg As String     Dim iBoxType As Integer     Dim iUpdate As Integer     Dim sDefault As String     Dim sOldFile As String     Dim iStatusState As Integer

sMsg = "Do you want to save yesterday's transactions?"

iBoxType = vbYesNo + vbQuestion     iUpdate = MsgBox(sMsg, iBoxType, "Automatic Backup")

If iUpdate = vbYes Then         sMsg = "Which filename would you like use?"

sDefault = "OLD.DAT"

sOldFile = InputBox(sMsg, "Automatic Backup", sDefault)

iStatusState = Application.DisplayStatusBar         Application.DisplayStatusBar = True         Application.StatusBar = "Updating past months..."

UpdateYesterday(sOldFile)

Application.StatusBar = False         Application.DisplayStatusBar = iStatusState     End If End Sub

(Помните, что эта процедура является примером; она не будет работать должным образом в вашей системе, потому что вызывает функцию с именем UpdateYesterday, которая выполняет фактическое обновление.)

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

Private Sub Workbook_Open()

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

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

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

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

Этот совет (8451) применим к Microsoft Excel 2007, 2010, 2013, 2016, 2019 и Excel в Office 365. Вы можете найти версию этого совета для старого интерфейса меню Excel здесь:

link: / excel-Running_a_Procedure_when_a_Workbook_is_Opened [Запуск процедуры при открытии книги].