Active控件的在設計模式下才能更改,進行操作:按鈕主要用到的屬性有 caption "按鈕什么名字";visible“按鈕是否可見” enable“按鈕是否可編輯” 這三個屬性值,其余都比較簡單常用
Sub test() Sheet1.CommandButton1.Caption = "結束" '更改名字 Range("a1") = Sheet1.CommandButton1.Caption '將名字賦值給a1 Sheet1.CommandButton1.Top = Sheet1.CommandButton1.Top + Sheet1.CommandButton1.Height '移動 End Sub
針對commandbutton 按鈕主要使用兩個事件 click 和 mousemove
Private Sub CommandButton1_Click() Range("e3") = 8 End Sub -------------------------------------- Private Sub CommandButton1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) MsgBox "你指我干嘛" End Sub
標簽控件label:caption主要決定里面寫什么內容 其余 enable,visible作用與按鈕相同:主要是用來看的不是用來寫的,如果需要用戶寫那就需要文本框
文本框
Sub test() Sheet1.Label1.Caption = "完美" End Sub
選擇按鈕OptionButton 這個控件比其他多了兩個 GroupName:組名 (這樣同樣的組名按鈕只能選擇一個);Value:返回值
Sub test() With Sheet1 If .OptionButton1.Value = True Then MsgBox "你選擇的是男" ElseIf .OptionButton2.Value = True Then MsgBox "你選擇的是女" Else MsgBox "你沒有選擇" End If End With End Sub
它也有自己的事件 主要是click事件
Private Sub OptionButton1_Click() MsgBox "男" End Sub
微調按鈕事件 :沒有caption屬性,但是有其他,value,min,max 主要屬性
Sub xieru() Range("a1") = Sheet1.SpinButton1.Value End Sub '只有在運行的時候才會有值
Private Sub SpinButton1_Change()
Call xieru
End Sub '使用自己的時間 再點擊按鈕,值就直接改變了 改變值的范圍是 min 到 max
幾個控件聯合制作一個考試系統
Sub xieru() Dim i As Integer i = Sheet2.SpinButton1.Value With Sheet2 '清空題目 .OptionButton1.Value = False .OptionButton2.Value = False .OptionButton3.Value = False .OptionButton4.Value = False '寫入題目 .Label2.Caption = i .Label3.Caption = Sheet3.Range("a" & i + 1) .Label4.Caption = Sheet3.Range("b" & i + 1) .Label5.Caption = Sheet3.Range("c" & i + 1) .Label6.Caption = Sheet3.Range("d" & i + 1) .Label7.Caption = Sheet3.Range("e" & i + 1) '隱藏 If .Label6.Caption = "" Then .OptionButton3.Visible = False Else .OptionButton3.Visible = True End If If .Label6.Caption = "" Then .OptionButton4.Visible = False Else .OptionButton4.Visible = True End If '返回之前的答案 If Sheet3.Range("g" & i + 1) = "A" Then .OptionButton1.Value = True ElseIf Sheet3.Range("g" & i + 1) = "B" Then .OptionButton2.Value = True ElseIf Sheet3.Range("g" & i + 1) = "C" Then .OptionButton3.Value = True ElseIf Sheet3.Range("g" & i + 1) = "D" Then .OptionButton4.Value = True End If End With End Sub
sheet2考試界面里的
Private Sub OptionButton1_Click() Sheet3.Range("g" & Sheet2.SpinButton1.Value + 1) = "A" End Sub ------------------------------------- Private Sub OptionButton2_Click() Sheet3.Range("g" & Sheet2.SpinButton1.Value + 1) = "B" End Sub ------------------------------------- Private Sub OptionButton3_Click() Sheet3.Range("g" & Sheet2.SpinButton1.Value + 1) = "C" End Sub ------------------------------------- Private Sub OptionButton4_Click() Sheet3.Range("g" & Sheet2.SpinButton1.Value + 1) = "D" End Sub ------------------------------------- Private Sub SpinButton1_Change() Call xieru End Sub
寫入這個主要是想說明性下帶參數的過程的用處:如下如果考試界面多出兩個按鈕,那么這個時候,使用帶參數的過程能省很多代碼
最終版
Sub xieru(i) With Sheet2 '清空題目 .OptionButton1.Value = False .OptionButton2.Value = False .OptionButton3.Value = False .OptionButton4.Value = False '寫入題目 .Label2.Caption = i .Label3.Caption = Sheet3.Range("a" & i + 1) .Label4.Caption = Sheet3.Range("b" & i + 1) .Label5.Caption = Sheet3.Range("c" & i + 1) .Label6.Caption = Sheet3.Range("d" & i + 1) .Label7.Caption = Sheet3.Range("e" & i + 1) '隱藏 If .Label6.Caption = "" Then .OptionButton3.Visible = False Else .OptionButton3.Visible = True End If If .Label6.Caption = "" Then .OptionButton4.Visible = False Else .OptionButton4.Visible = True End If '返回之前的答案 If Sheet3.Range("g" & i + 1) = "A" Then .OptionButton1.Value = True ElseIf Sheet3.Range("g" & i + 1) = "B" Then .OptionButton2.Value = True ElseIf Sheet3.Range("g" & i + 1) = "C" Then .OptionButton3.Value = True ElseIf Sheet3.Range("g" & i + 1) = "D" Then .OptionButton4.Value = True End If End With End Sub
sheet2中的按鈕
Private Sub CommandButton1_Click() Call xieru(1) Sheet2.SpinButton1.Value = 1 End Sub ---------------------------------- Private Sub CommandButton2_Click() Call xieru(8) Sheet2.SpinButton1.Value = 8 End Sub ---------------------------------- Private Sub OptionButton1_Click() Sheet3.Range("g" & Sheet2.SpinButton1.Value + 1) = "A" End Sub ---------------------------------- Private Sub OptionButton2_Click() Sheet3.Range("g" & Sheet2.SpinButton1.Value + 1) = "B" End Sub ---------------------------------- Private Sub OptionButton3_Click() Sheet3.Range("g" & Sheet2.SpinButton1.Value + 1) = "C" End Sub ---------------------------------- Private Sub OptionButton4_Click() Sheet3.Range("g" & Sheet2.SpinButton1.Value + 1) = "D" End Sub ---------------------------------- Private Sub SpinButton1_Change() Call xieru(Sheet2.SpinButton1.Value) End Sub
VBA-窗體與控件 :用到了在學習