引言
本人本次實踐的目標是數據查詢。具體實現方式應該是:
使用窗體及其他控件做查詢的條件的輸入
使用excel作為查詢結果的輸出
從桌面上看應該是,前面一個窗口輸入查詢條件,然后點確定,后面有個excel顯示結果。
類似下圖這種
一、打開窗口
窗體俗稱對話框,在可視化的面向對象的編程軟件中都應該有。在VBA中也有,可以打開 excel->開發工具
點開Visual Basic就會進入到變成界面,然后就可以插入窗體,如下圖
二、窗體簡介
窗體,也就是窗口,或者叫對話框,是vba定義的一個對象,或者說一類對象。微軟對“Microsoft 窗體”對象的介紹就是下面一幅圖
我們本節所說的”窗體“就是第二層(UserForm)。我們可以從圖中看出,窗體對象,不止是指UserForm,還指其他的對象,如Controls,Font,MultiPage,等等。從面向對象的觀點來說,這個圖表示的應該是一個繼承圖。(我不是很熟,猜的) 如果上圖是個繼承關系圖,那么我們可以得到幾個結論:
他們的事件可以繼承
他們的屬性也可以繼承
且兒子的屬性和事件可能比父親多。。。。
三、窗體屬性簡介
屬性,表示這個窗體固有的特性,如基本的:長寬高,位置,顏色等;特殊的:如字體大小啊,有無滾動條啊等等
所以分下類:
基礎屬性:外觀,位置,字體
名稱 窗體名稱 該窗體的標識 可能是唯一標識
BackColor
背景色
BorderColor
邊框顏色 只有BorderStyle為1時,這個才有效
BorderStyle
邊框類型(兩種)
0 fmBorderStyleNone
1 fmBorderStyleSingle
Caption
窗體左上角顯示的名字
Height
窗體顯示位置-高
Width
窗體顯示位置-寬
行為屬性
Cycle
tab順序指定控件接收焦點的順序
0 fmCycleAllForms
2 fmCycleCurrentForm
選0時,使用tab鍵,會遍歷所有的該窗體范圍內所有的控件;選1時,使用tab鍵,只會遍歷某一窗體范圍內的控件,tab不會跳出范圍,到最后一個控件后會在回到該窗體范圍的第一個控件
showmodal 窗口是否鎖死(這個詞合適)
true
false
選true叫模態,false叫非模態
模態下,如果這個窗口是激活的,其他窗體或窗口則不能被選中。非模態,反之。
滾動條
ScrollBars
滾動條
0 fmScrollBarsNone
1 fmScrollBarsHorizontal
2 fmScrollBarsVertical
3 fmScrollBarsBoth
0 無
1 水平
2 垂直
3 全部
ScrollHeight
ScrollTop
滾動條高 height有值,top才填值 只有當ScrollHeight值大於窗體本身的height時,滾動條才會顯示。這個時候Top表示滾動條離頂部的距離
ScrollWidth
ScrollLeft
滾動條寬 width有值,left才能填值 只有當ScrollWidth值大於,窗體本身的Width時,滾動條才會顯示。這個時候left表示滾動條離左側的距離
四、窗體事件、方法簡介
常用事件
Initialize
就是在初始化窗口時,要對窗口干的事情,比如給窗口屬性賦值,給窗體內包含的控件賦初始值。
Click
點擊窗體時,會干的事情,比如隱藏窗體等等
Terminate
關閉窗體是要干的事情,比如保存文件,關閉excel等
怎么弄出來事件呢?
先在左邊選中窗口(對象),右邊基本上都是事件。。。每個對象能響應的事件可能是不一樣多的
常用方法
move,copy等等呢
怎么弄出來方法呢?
跟你寫代碼一樣,寫出這個對象在.一下,后面跟的就是方法和屬性
一般黑色表示屬性,綠色標識方法。
五、Initalize 、click事件示例
下列示例假設程序中已有兩個窗體UserForms。在 UserForm1 的Initalize事件中加載 UserForm2 ,並將其顯示出來。當用戶單擊 UserForm2 時,就會將其隱含起來,而 UserForm1 將會出現。而當用戶單擊 UserForm1 時,UserForm2 便會再次出現。
'這是 UserForm1 的 Initialize 事件過程
Private Sub UserForm_Initialize()
Load UserForm2
UserForm2.Show
End Sub
'這是 UserForm2 的 Click 事件過程
Private Sub UserForm_Click()
UserForm2.Hide
End Sub
' 這是 UserForm1 的 Click 事件
Private Sub UserForm_Click()
UserForm2.Show
————————————————
版權聲明:本文為CSDN博主「二流殺手」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/monkeyzh123/java/article/details/88527093