Excel VBA编程 窗体的事件

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Excel VBA编程窗体的事件

事件是指在应用程序运行期间,在窗体(或其内的对象)上,由于用户的操作或系统内自身原因而产生的有效动作,例如单击鼠标(Click)、移动鼠标(MouseMove)等都是事件。

VBE中的对象可识别的事件是预先确定的,并不是所有对象都会具有相同事件。但每个事件都有一个事件过程的框架与之对应,当某一事件发生时,系统将立即执行对应的事件过程,因此,如果想利用这个过程去完成指定的任务,那么用户就必须在这个对应的事件过程中编写程序代码,以便响应发生的事件,否则,即使发生了可识别的事件,系统也不会做任何操作。下面介绍用户窗体中的一些常用事件。

1.Initialize事件

Initialize事件用来提供应用程序或用户窗体中的控件、变量等进行初始化。该事件的作用,于类模块中的该事件相同。

2.QueryClose事件

该事件发生在UserForm关闭之前。通常用这个事件确保在关闭应用程序之前,应用程序包含的用户窗体中没有未完成的任务。该事件的语法格式如下:

格式:Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)

该事件括号内有两个参数。其中,参数Cancel是一个整数的值,用于指定是否在所有加载的用户窗体中停止QueryClose事件,当Cancel的值设置为0以外的任意值时,QueryClose 事件将停止执行,并防止关闭UserForm与应用程序;参数CloseMode为一个值或常数,用来指示引起QueryClose事件的原因。

CloseMode参数返回下列的值,如表12-4所示。

表12.4 CloseMode参数的返回值

“常数”是执行程序时保持常数值的命名项目。常数可以是字符串、数值、另一常数、

提示

3.Te

rmina te 事

件 该事

件用于删除窗体中对象事例的所有引用。Terminate 事件发生在卸载窗体对象之后。如果应用程序为非正常退出,从而导致在内存中删除UserForm 的示例,将不会触发Terminate 事件。例如,在从内存中删除UserForm 之前,应用程序调用了End 语句,则UserForm 不会触发Terminate 事件。

4.Activate 和Deactivate 事件

当运行中的对象变成活动窗口的时候就会发生Activate 事件。而当对象不再是活动窗口时,则会发生Deactivate 事件。下面的情况会引发这两种事件:

● Show

对象可使用代码中的Show 方法变成活动的,且只有在对象是可见的时候才会发生Activate 事件。除非使用Show 方法,否则用Load 加载的UserForm 是不可见的。

● 切换焦点

在应用程序中移动焦点时,也会引发Activate 和Deactivate 事件。而将焦点移出或移动到另一个应用程序中的对象并不会触发此事件。在卸载对象时,并不会发生 Deactivate 事件。 从上面介绍的几个事件来看,事件都是在特定的环境下发生的。比如Click 事件,只有在单击某个对象时才会发生。可以跟据这一特点,看出窗体中这些自动执行的事件的顺序是:运行窗体后,窗体执行初始化Initialize 事件;然后再执行激活Activate 事件;当用户的操作完成后,单击关闭按钮,执行关闭QueryClose 事件;然后系统再执行Terminate 事件,释放对象和用户窗体在内存中的实例和引用。

任何(除乘幂与Is 之外的)算术运算符或逻辑运算符的组合。每个主应用程序皆可定义自己的一组常数。用户也可以使用Const 语句定义附加常数。可在代码中的任何地方使用常数代替实际的值。

相关文档
最新文档