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

Для автоматического запуска процедуры при открытии книги все, что вам нужно сделать, это назвать процедуру Auto_Open (). Таким образом, следующая процедура будет запускаться автоматически при открытии книги, содержащей ее:

Sub Auto_Open()

Dim strMsg As String     Dim intBoxType As Integer     Dim strTitle As String     Dim intUpdate As Integer     Dim strDefault As String     Dim strOldFile As String     Dim intStatusState As Integer

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

intBoxType = vbYesNo + vbQuestion     strTitle = "Automatic Backup Routine"

intUpdate = MsgBox(Msg, BoxType, Title)

If intUpdate = vbYes Then         strMsg = "Which filename would you like use?"

strDefault = "OLD.DAT"

strOldFile = InputBox(strMsg, strTitle, strDefault)

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

UpdateYesterday         Application.StatusBar = False         Application.DisplayStatusBar = intStatusState     End If End Sub

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

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

Private Sub Workbook_Open()

Многие люди считают использование Auto_Open «старым способом» этого типа макросов и Workbook_Open как «новым способом». В некотором смысле это правда; Метод Workbook_Open — более объектно-ориентированный подход к этому типу макросов, чем Auto_Open. На практике, однако, между ними очень мало различий.

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

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

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

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

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

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