就这样玩会VBA中常见的自定义控件

时间:2022-09-25 11:08:48

身边有不少朋友都迷上了Office二次开发,平日里没事就喜欢用VBA编写些应用程序来提高自己的办公效率,但也有半途而废、不得要领的。如果能恰当、合理地使用VBA提供的自定义控件,不仅可以让应用程序窗体变得更加美观,同时也能使设计的应用更加的个性化、更加地方便用户的使用。

小贴士

在默认的情况下,窗体控件工具箱中仅给出了常见的几个控件,事实上,VBA的控件数量远不止这些,用户可以根据需要在控件工具箱上添加一些标准控件或自定义控件,也可以随时删除它们。

在录入用户的出生日期或查询某个日期的数据时,我们经常会用到日历控件或者日期控件。

在Excel VBA窗体的工具箱中没有提供日历控件,首次使用该控件时需要将其添加到窗体工具箱中。添加的方法是:打开VBE编辑器,首先在当前工作簿中插入一个用户窗体。接下来单击“工具”菜单的“附加控件”命令,打开“可用控件”对话框,在“可用控件”列表框中选择“日历控件 11.0”(Office版本为2003),单击“确定”按钮。此时在窗体工具箱中多出了一个“Calendar”(日历) 控件。

实现的方法是:按“Alt+F11”组合键打开VBE编辑器,在当前工作簿中插入一个用户窗体,利用日历控件和按钮控件设计的用户界面(如图1)。双击窗体中的命令按钮,在其Click事件中编写下面的代码:

Private Sub CommandButton1_Click()

ActiveCell.Value = Calendar1.Value

UserForm1.Hide

End Sub

双击当前的工作表(如sheet1),在其SelectionChange事件中编写下面的代码:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

'判断用户选中的是否为第3列

If Target.Column = 3 Then

UserForm1.Show

End If

End Sub

输入数据时,当用户将光标移到到第3列即出生日期所在列时自动弹出用户窗体,用户选择完日期并单击“插入日期”按钮后,所选日期自动插入到当前的单元格中,同时用户窗体自动隐藏。这样,大家就可以方便地录入日期数据了。

小贴士

与其它可编程控件一样,日历也有很多的属性,如:BackColor属性可用来设置日历控件的背景色;Year、Month和Day属性可用来提取所选日历的年份、月份和日期;Value属性用于显示用户在日历控件中选定的日期值等。

DTPicker 日期控件

与日历控件一样,日期控件也是一个用来获取日期的控件,功能大致相同,但操作界面与日历控件略有区别,该控件在应用程序的开发中比日历控件应用更为常见。

首次使用日期控件时也需要将其添加到窗体工具箱中去,添加的方法与日历控件类似。日期控件的名字是“Microsoft Date and Time Picker Control 6.0 (SP4)”,其主要属性有:Format属性用于指定日期的显示格式;Value属性值与用户选定的日期值有关;Year、Month和Day属性可用来提取所选日期值的年份、月份和日期等。

使用窗体查询或采集数据时经常会遇到日期输入的问题。此时既可以手工输入日期数据,也可以单击列表框右侧的下拉按钮选择日期数据(如图2),系统可将用户选择的日期值回显到指定的文本框或其它对象中,从而方便了日期数据的查询或采集。

很多朋友设计的应用程序不仅操作方便,安装时有进度条提示,为了美观,他们有时还在窗体中插入变幻的Flas,这些功能到底又是如何实现的呢?

上一篇:内外兼修 第24期 下一篇:不懂PS也能做修图达人