林麗華
身邊有不少朋友都迷上了Office二次開發(fā),平日里沒事就喜歡用VBA編寫些應用程序來提高自己的辦公效率,但也有半途而廢、不得要領的。如果能恰當、合理地使用VBA提供的自定義控件,不僅可以讓應用程序窗體變得更加美觀,同時也能使設計的應用更加的個性化、更加地方便用戶的使用。
小貼士
在默認的情況下,窗體控件工具箱中僅給出了常見的幾個控件,事實上,VBA的控件數(shù)量遠不止這些,用戶可以根據(jù)需要在控件工具箱上添加一些標準控件或自定義控件,也可以隨時刪除它們。
在錄入用戶的出生日期或查詢某個日期的數(shù)據(jù)時,我們經常會用到日歷控件或者日期控件。
在Excel VBA窗體的工具箱中沒有提供日歷控件,首次使用該控件時需要將其添加到窗體工具箱中。添加的方法是:打開VBE編輯器,首先在當前工作簿中插入一個用戶窗體。接下來單擊“工具”菜單的“附加控件”命令,打開“可用控件”對話框,在“可用控件”列表框中選擇“日歷控件 11.0”(Office版本為2003),單擊“確定”按鈕。此時在窗體工具箱中多出了一個“Calendar”(日歷) 控件。
實現(xiàn)的方法是:按“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 = 3Then
UserForm1.Show
End If
End Sub
輸入數(shù)據(jù)時,當用戶將光標移到到第3列即出生日期所在列時自動彈出用戶窗體,用戶選擇完日期并單擊“插入日期”按鈕后,所選日期自動插入到當前的單元格中,同時用戶窗體自動隱藏。這樣,大家就可以方便地錄入日期數(shù)據(jù)了。
小貼士
與其它可編程控件一樣,日歷也有很多的屬性,如:BackColor屬性可用來設置日歷控件的背景色;Year、Month和Day屬性可用來提取所選日歷的年份、月份和日期;Value屬性用于顯示用戶在日歷控件中選定的日期值等。
DTPicker 日期控件
與日歷控件一樣,日期控件也是一個用來獲取日期的控件,功能大致相同,但操作界面與日歷控件略有區(qū)別,該控件在應用程序的開發(fā)中比日歷控件應用更為常見。
首次使用日期控件時也需要將其添加到窗體工具箱中去,添加的方法與日歷控件類似。日期控件的名字是“Microsoft Date and Time Picker Control 6.0 (SP4)”,其主要屬性有:Format屬性用于指定日期的顯示格式;Value屬性值與用戶選定的日期值有關;Year、Month和Day屬性可用來提取所選日期值的年份、月份和日期等。
使用窗體查詢或采集數(shù)據(jù)時經常會遇到日期輸入的問題。此時既可以手工輸入日期數(shù)據(jù),也可以單擊列表框右側的下拉按鈕選擇日期數(shù)據(jù)(如圖2),系統(tǒng)可將用戶選擇的日期值回顯到指定的文本框或其它對象中,從而方便了日期數(shù)據(jù)的查詢或采集。
很多朋友設計的應用程序不僅操作方便,安裝時有進度條提示,為了美觀,他們有時還在窗體中插入變幻的Flash動畫,這些功能到底又是如何實現(xiàn)的呢?