شما می توانید هر زمان که یک کتاب کار خاص باز می شود، اکسل را به طور خودکار اجرا کنید. به عنوان مثال، هنگامی که کتاب کار باز می شود، ممکن است بخواهید رویه ای را اجرا کنید که از کاربران می پرسد که آیا می خواهند برخی کارها را انجام دهند، مانند ذخیره داده های روزهای قبل در فایل دیگری.
در واقع، اکسل دو روش مختلف را برای اجرای یک رویه در هنگام باز شدن یک کتاب کار ارائه می دهد. در هر دو مورد، تنها کاری که باید انجام دهید این است که یک نام خاص برای ماکرو ارائه دهید. این سرنخی است که به اکسل می گوید که می خواهید هنگام باز کردن این رویه را اجرا کنید. در صورت تمایل می توانید رویه را 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 yesterdays 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()