جان باید اطمینان حاصل کند که اقدامات خاصی انجام شده است (اطلاعات اضافه شده و غیره) قبل از اینکه کاربر کاربرگ را ترک کند. او متعجب است که آیا نوعی رویداد ماکرو مانند WorksheetBeforeDeactivate وجود دارد یا خیر.
در واقع دو رویداد وجود دارد که می توانید برای این منظور استفاده کنید. میتوانید از رویداد SheetDeactivate در ماژول ThisWorkbook برای راهاندازی اقدامات هر زمان که کاربر هر کاربرگ را در کتاب کار ترک میکند استفاده کنید:
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
MsgBox Prompt:="You just left sheet:" & Sh.Name
End Sub
اگر میخواهید اقدامات را تنها زمانی فعال کنید که یک کاربرگ خاص را ترک کنند، میتوانید از رویداد Deactivate در شی WorkSheet استفاده کنید:
Private Sub Worksheet_Deactivate()
sheet specific code goes here
End Sub
با این حال، باید بدانید که در هر صورت کاربرگ که کاربر برای رفتن به آن انتخاب می کند، کاربرگ فعال پس از تکمیل رویداد خواهد بود. اگر میخواهید کاربر را مجبور کنید که در کاربرگ بماند، باید بهطور خاص او را در کاربرگ قرار دهید، به این ترتیب:
Private Sub Worksheet_Deactivate()
sheet specific code goes here
Sheets("Sheet1").Select
End Sub
البته فرض بر این است که نام صفحه کاری که می خواهید کاربر در آن بماند Sheet1 است.