首页 > 代码库 > 【VBA编程】13.Workbook对象的事件

【VBA编程】13.Workbook对象的事件

Workbook事件用于响应对Workbook对象所进行的操作。

【BeforeClose事件】

BforeClose事件用于响应窗口关闭的操作

在工程资源器中,双击“ThisWorkbook”对象,弹出"ThisWorkbook"窗口,并且选择Workbook,BeforeClose

技术分享

并在窗口中写下如下代码:
【代码区域】

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    If ThisWorkbook.Saved = False Then
    ThisWorkbook.Save
    MsgBox "工作簿已经发生变更,已经保存", vbOKOnly, "测试BeforeClose事件"
    Cancle = True
    End If
End Sub

接着保存即可。保存完毕之后,重新打开Excle,编辑后直接退出。则会出现如下结果

【结果展示】

                                                         技术分享

【BeforeSave事件】

BeforeSave用于响应保存操作,当保存操作发生时,将触发BeforeSave操作

与BeforeClose事件操作一致

【代码区域】

Private Sub workbook_BeforeSave(ByVal saveAsUI As Boolean, cancel As Boolean)
    sel = MsgBox("真的要保存对工作簿的修改吗?", vbYesNo, "测试BeforeSave事件")
    If sel = vbNo Then
     cancel = True
     End If
End Sub

【结果展示】

 

                                                              技术分享

 【WindowsActivate事件】

WindowsActivate事件用于保存响应激活窗口的操作,当激活窗口时,首先执行此函数内部的代码,然后执行激活窗口的后续操作

【代码区域】

Private Sub workbook_windowsActivate(ByVal wn As Window)
    MsgBox "欢迎使用Excle 2013电子表格处理程序", vbOKOnly, "测试windowsActivate事件"
End Sub
Private Sub workbook_windowresize(ByVal wn As Window)
    MsgBox "你已经调整了Excle 2013应用程序的窗口大小", vbOKOnly, "测试windowsActivate事件"
End Sub

如下调整窗口大小时:

技术分享

【效果展示】

                                                                      技术分享

 

【VBA编程】13.Workbook对象的事件