VBA Excel 實踐(三)Excel控件及Excel控件的初始化

引言

我們還是要回顧下我們要幹什麼?我們的目標是做一個具有查詢及顯示查詢結果的工具。上一章介紹了窗體及其屬性、事件、方法等,這個東西只能算是畫個查詢條件的框框,裏面的具體查詢條件怎麼填呢。

從我們見過的軟件分析,要寫一個查詢條件的輸入,必須有輸入框吧,有可能有選擇框吧,有可能有多選、單選框吧,你得有確定按鈕吧,本章主要描述這些東西及其初始化

一、綜述

控件其實也是窗體,是上篇中的窗體的兒子、繼承者。目前我們常用的有標籤(Lable),文本框(TextBox),複合框(ComboBox),列表框(ListBox),複選框(CheckBox),選項按鈕(OptionButton),命令按鈕(CommandButton),等等。

因爲控件和窗體是繼承關係,所以控件的屬性和窗體差不多,如位置、大小、字體相關、圖片相關、鼠標相關等。但是龍生九子,子子不同,他們又會生出具有各自特點的屬性。

二、屬性

上面說了,龍生九子,子子不同。所以控件在繼承窗體的屬性時,不是全部繼承,一般都是根據自身的功能去繼承父親的某些特點。同時,兒子也會生出一些自己的共性特點(屬性)。

  • 新屬性:
textalign 文本對齊方式

1 fmTextAlignLeft

2 fmTextAlignCenter

3 fmTextAlignRight

對於listbox只對編輯框起作用

AutoSize

控件調節自身大小

ture

false

true表示自動調整,當然不同的空間自動調整的含義不同

AutoTab

當用戶在文本框或組合框的文本框區域輸入了最大允許字符數時,是否自動跳格

ture

false

MaxLength 屬性規定了在文本框或組合框的文本框區域內所允許的最大字符數

TabIndex

按tab鍵時TabIndex表示第幾個跳到該控件

整數

 
TabStop TabStop表示按tab鍵時是否忽略該控件

ture

false

true 表示接受tab

ControlSource

標識用於設置或儲存控件中 Value 屬性的數據位置。ControlSource 屬性可接受 Microsoft Excel 工作表區域

一般寫excel單元格 excel單元格和控件對應的value可以互相影響。意思就是你改一個另外一個就會跟着改
ControlTipText

指定當用戶將鼠標指針放在控件上但未按下時所顯示的文本

   

 

 

 

 

 

 

 

 

 

 

 

 

三、方法

AddItem,RemoveItem方法等

四、控件初始化示例

 對於控件的初始化,我們一般在UserForm的init事件中進行。初始化控件時,可對控件的屬性進行賦值。本次示例對checkbox,textbox,listbox,combobox進行了初始化操作,分別進行了:複選框選定初始化,文本框內容初始化,複合框內容初始化,列表框內容初始化。

賦值效果,及代碼如下:

  • 效果:

  • 代碼: 
Dim MyArray(6, 3)
'文本框初始化:屬性賦值
Private Sub testboxinit()
    TextBox1.Text = "TextBox1"
    TextBox1.Enabled = False
    TextBox1.Locked = False
    TextBox2.Text = "TextBox2"
End Sub
'複選框初始化:名稱賦值,是否選定
Private Sub checkboxinit()
    CheckBox1.Caption = "Enabled"
    CheckBox1.Value = True
    
    CheckBox2.Caption = "Locked"
    CheckBox2.Value = False
End Sub
'複合框初始化:內容初始賦值
Private Sub comboxinit()
    Dim j As Integer

    For j = 1 To 9
        ComboBox1.AddItem "Choice " & j
    Next j
    ComboBox1.AddItem "Chocoholic"
End Sub
'列表框初始化:內容初始賦值
Private Sub listboxinit()
    Dim i As Single
     '第一個列表框包含三個數據列
    ListBox1.ColumnCount = 3
     '第二個框包含六個數據列
     ListBox2.ColumnCount = 6

    '把整數值加載到 MyArray 的第一列
    For i = 0 To 5
        MyArray(i, 0) = i
    Next i

    '加載 MyArray 的列 2 和列 3
    MyArray(0, 1) = "Zero"
    MyArray(1, 1) = "One"
    MyArray(2, 1) = "Two"
    MyArray(3, 1) = "Three"
    MyArray(4, 1) = "Four"
    MyArray(5, 1) = "Five"

    MyArray(0, 2) = "Zero"
    MyArray(1, 2) = "Un ou Une"
    MyArray(2, 2) = "Deux"
    MyArray(3, 2) = "Trois"
    MyArray(4, 2) = "Quatre"
    MyArray(5, 2) = "Cinq"

    '把數據加載到 ListBox1 和 ListBox2
    ListBox1.List() = MyArray
    ListBox2.Column() = MyArray
End Sub

Private Sub UserForm_Initialize()
    
    Call testboxinit
    Call comboxinit
    Call listboxinit
    Call checkboxinit
   
End Sub

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章