《VBA之Excel运用》是非常经典的,是我推出的第七套教程,定位于低级。这套教程从大略的录制宏开始讲解,一贯到窗体的搭建,内容丰富,实例浩瀚。大家可以非常随意马虎的节制干系的知识,这套教程共三册,十七章,都是我们在利用EXCEL事情过程中须要节制的知识点,希望大家能节制利用。今日讲解的内容是“VBA之EXCEL运用”的第十六章“用户窗体(Userform)工具”的第5节:窗体的加载、卸载及点击事宜
第五节 窗体事宜的相应
大家好,我们在前面讲解了窗体的事宜,在这讲中我们再次利用一个实例讲解一下窗体对事宜的相应过程。这次讲解的是窗体的单击事宜,在点击事宜过程中,让窗体改变大小及背景色。
1 窗体的搭建及思路剖析在VBE窗口插入一个新的窗体UserForm2,这个窗体将相应点击事宜。如下界面:
对付这个窗体,我们先不做属性的任何设置,要在代码中加以设置。我们将改变的设置有:窗体的Height,Width这两个属性将改变窗体的大小;BackColor这个属性将改变窗体的背景颜色。由于要在窗体的单击事宜中改变上面的三个属性,以是我们将利用随机数来改变上述三个值。
为了能明显地显示窗体的大小,我们还会利用到窗体的Resize事宜,在这个事宜中会反馈窗体的大小。
窗体的加载和卸载。在前面的讲解中讲过窗体的加载过程中首先实行的是Initialize事宜,这个事宜中要初始化窗体的一些属性设置。窗体的卸载过程:QueryClose事宜,这个事宜在窗体的关闭之前实行,我们要在这个事宜中提示给用户事宜的进程;Terminate事宜,这个事宜是窗体卸载的末了的一个事宜,将开释内存。
2 窗体对点击事宜的相应代码及代码解读看下面的代码:
Private Sub UserForm_Click()
代码略,见教程
Private Sub UserForm_Initialize()
代码略,见教程End Sub
Private Sub UserForm_Resize()
代码略,见教程End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
代码略,见教程End Sub
Private Sub UserForm_Terminate()
代码略,见教程End Sub
代码截图:
代码解读:
1)Private Sub UserForm_Click()
Me.Height = Int(Rnd 200) + 100
Me.Width = Int(Rnd 200) + 100
Me.BackColor = RGB(Int(Rnd 100), Int(Rnd 200), Int(Rnd 300))
End Sub
上述是窗体的点击事宜,这个事宜中将改变窗体的Height,Width,BackColor 属性,由于要使每次点击窗体产生不同的属性设置,我们用的是随机数办理。
2)Private Sub UserForm_Initialize()
Me.Caption = "窗体"
Me.BackColor = RGB(Int(Rnd 100), Int(Rnd 100), Int(Rnd 100))
End Sub
这是窗体的加载事宜,这个事宜中设置了窗体的Caption,BackColor属性。
3)Private Sub UserForm_Resize()
msg = "宽: " & Me.Width & Chr(10) & "高: " & Me.Height
MsgBox prompt:=msg, Title:="Resize事宜"
End Sub
以上是窗体的Resize事宜,这个事宜总提示给用户窗体的大小
4)Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
msg = "现在卸载 " & Me.Caption
MsgBox prompt:=msg, Title:="QueryClose事宜"
End Sub
以上事宜是在窗体的关闭前发生,仍是提示用户卸载窗体
5) Private Sub UserForm_Terminate()
msg = "现在卸载 " & Me.Caption
MsgBox prompt:=msg, Title:="Terminate事宜"
End Sub
以上是窗体的卸载事宜,这个事宜中将开释内存。
Me是一个在用户窗体的代码模块中指定该用户窗体的快捷办法,例如,Me. Height表示当前用户窗体的高度3 窗体对点击事宜相应的代码实行效果我们点击事情表窗口的运行按钮,这时会弹出用户窗体:
此时我们点击窗体:
我们点击关闭按钮:
至此,全体过程完毕。
今日内容回向:
1) 窗体的初始化在什么事宜中完成?
2) 窗体的卸载过程中,什么时候内存开释?