【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

如下调整窗口大小时:

【效果展示】

时间: 2024-10-12 18:17:48

【VBA编程】13.Workbook对象的事件的相关文章

【VBA编程】11.Application对象

Application对象常用属性[ActiveCell属性]ActiveCell属性返回一个Range对象,表示当前窗口或指定窗口中的单元格.如果窗口没显示工作表,则此属性无效.[代码区域] Sub 激活单元格() Worksheets("sheet1").Activate '激活当前单元格 With ActiveCell .Value = "娑娜" With .Font .Bold = True '设置为粗体 .Italic = True '设置为斜体 .Siz

VBA编程的工程性规划

看过很多人写的VBA代码,一团一团的,一点规划都没有,为了VBA编程更具工程性,这里讨论一下,并列出自己的一些建议:0.给VBA工程定义一个名字,而非直接使用默认的名称--"VBAProject",以方便以后可能要进行的跨VBA工程编码1.定义一个命名为"O"的标准模块[拼音中"O"字母的读音,意指"我"这个字],用于定义所有的全局对象,管理本工程的代码与数据,主要API:    [1]About(Optional ShowD

电子表格控件Spreadsheet 对象方法事件详细介绍

1.ActiveCell:返回代表活动单元格的Range只读对象.2.ActiveSheet:返回代表活动工作表的WorkSheet只读对象.3.ActiveWindow:返回表示当前窗口的Window对象.4.ActiveWorkbook:返回表示打开工作簿的Workbook对象.5.AllowPropertyToolbox:确定用户是否可以在运行时显示“命令和选项”对话框.boolean类型.6.Application:有两种情况,a)应用于OWCLanguageSettings对象时,返回

Excel中的VBA编程

目的:有时我们需要对Excel文件中大量的数据进行整理,此时如果使用手动整理会非常繁琐而且容易出错.而如果采用VBA语言,在Excel中根据需求编写一段简单的代码就能自动完成大量数据的整理工作. 1.以Excel 2007为例,如果要进行VBA编程,需要启用"开发工具" 选项.在Excel 选项对话框中勾选[在功能区显示"开发工具"选项卡]复选框. 在开发工具选项中点击"查看代码",打开Microsoft Visual Basic界面. 2.在M

【2017-05-03】winform打印控件、事件对象和事件数据、MDI窗体容器

一.打印控件 第一步先把打印对象搞出来. - printDocument    打印对象(将要打印的内容放到该对象里,从该对象里取内容打印) 设置他的PrintPage事件(对于要打印的每一页触发一次) - pageSetupDialog 打印设置对话框 - printPreviewDialog 打印预览对话框 - printPreviewControl  打印预览控件. 只需要把预览对象给他设置上就好 - printDialog  打印对话框 打印界面里面是否禁用页面范围.打印到文件等从Pri

Java Swing界面编程(22)---事件处理:动作事件及监听处理

要想让一个按钮变得有意义,就必须使用事件处理.在swing的事件处理中,可以使用ActionListener接口处理按钮的动作事件. package com.beyole.util; import java.awt.Font; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter

PB各对象常用事件

1.window中的事件 事件名                  触发的时机 01.Activate            在窗口激活之前触发 02.Clicked             当用户用鼠标单击窗口的空白区域(没有控件的区域)时触发 03.Close               当关闭窗口时触发 04.CloseQuery          当清除或关闭窗口时触发.然后检查Message.ReturnValue的值,若为1,则窗口不能关闭 05.Deactivate        

(转)深入理解JavaScript的闭包特性 如何给循环中的对象添加事件

深入理解JavaScript的闭包特性如何给循环中的对象添加事件 初学者经常碰到的,即获取HTML元素集合,循环给元素添加事件.在事件响应函数中(event handler)获取对应的索引.但每次获取的都是最后一次循环的索引.原因是初学者并未理解JavaScript的闭包特性. 有个网友问了个问题,如下的html,为什么点击所有的段落p输出都是5,而不是alert出对应的0,1,2,3,4. 1.  <!DOCTYPE HTML> 2.  <html> 3.  <head&g

并发编程 13—— 线程池 之 整体架构

Java并发编程实践 目录 并发编程 01—— ConcurrentHashMap 并发编程 02—— 阻塞队列和生产者-消费者模式 并发编程 03—— 闭锁CountDownLatch 与 栅栏CyclicBarrier 并发编程 04—— Callable和Future 并发编程 05—— CompletionService : Executor 和 BlockingQueue 并发编程 06—— 任务取消 并发编程 07—— 任务取消 之 中断 并发编程 08—— 任务取消 之 停止基于线