清單視圖(ListView)控制項可將專案組成帶有或不帶有列標頭的列,
並顯示伴隨的圖示和文本。
該控制項可使用4種不同的視圖來顯示專案。
大圖示;
小圖示;
列表;
詳細資料(報表);
1 添加ActiveX控制項到工具箱Alt+F11(打開VBE)→插入→使用者表單, 在工程中增加一個使用者表單, 同時顯示出“工具箱”→右擊→附加控制項:Microsoft ListView Control 6.0。
2 添加使用者表單和控制項
選中ImageList1控制項, 在“屬性”視窗中按一下“自訂”右側的按鈕, 打開“屬性頁”對話方塊, 選中“16*16”選項按鈕。 按一下切換到“圖像”選項卡, 然後按一下“插入圖片”按鈕增加一個小圖示, 設置其“關鍵字”為sIcon, 向ImageList2控制項中添加一個大圖示, 設置其“關鍵字”為lIcon, 如下圖:
Sub 測試ListView控制項()
frmListView.Show
End Sub
4 表單代碼Private Sub UserForm_Initialize()
Dim c As Integer, i As Integer
Dim item As ListItem, colh As ColumnHeader
c = Worksheets("花名冊").Range("A1").End(xlDown).Row '數據行數
If c >= 65536 Then c = 1
ListView1.Icons = ImageList2 '設置大圖示控制項
ListView1.SmallIcons = ImageList1 '設置小圖示控制項
With ListView1.ColumnHeaders '添加列標題
Set colh = ListView1.ColumnHeaders.Add(, "姓名", "姓名")
Set colh = ListView1.ColumnHeaders.Add(, "性別", "性別")
Set colh = ListView1.ColumnHeaders.Add(, "地址", "地址")
Set colh = ListView1.ColumnHeaders.Add(, "電話", "電話")
Set colh = ListView1.ColumnHeaders.Add(, "備註", "備註")
End With
i = 2
With Worksheets("花名冊")
Do While i <= c '逐行讀出工作表中的資料
str1 = .Cells(i, 1)
Set item = ListView1.ListItems.Add(, str1, str1, "lIcon", "sIcon")
item.SubItems(1) = .Cells(i, 2) '性別
item.SubItems(2) = .Cells(i, 3) '地址
item.SubItems(3) = .Cells(i, 4) '電話
item.SubItems(4) = .Cells(i, 5) '備註
i = i + 1
Loop
End With
With cmbView '初始化視圖複合框的值
.AddItem "大圖示"
.AddItem "小圖示"
.AddItem "列表"
.AddItem "詳細資料"
.Value = .List(0) '以大圖示方式顯示
End With
End Sub
Private Sub cmbView_Change()
Select Case cmbView.Value
Case "大圖示"
ListView1.View = lvwIcon
Case "小圖示"
ListView1.View = lvwSmallIcon
Case "列表"
ListView1.View = lvwList
Case "詳細資料"
ListView1.View = lvwReport
End Select
End Sub
Private Sub cmdAdd_Click()
Dim c As Integer, i As Integer, str1 As String, strSex As String
Dim item As ListItem
str1 = Trim(txtName.Value)
If Len(str1) = 0 Then '判斷姓名文字框是否為空
MsgBox "請輸入姓名!"
Exit Sub
End If
c = ListView1.ListItems.Count '獲取ListView控制項中的專案數
For i = 1 To c '判斷是否已有同名專案
If ListView1.ListItems(i).Text = str1 Then
MsgBox "列表中已經有該姓名, 請重新輸入!"
txtName.SetFocus
Exit Sub
End If
Next
Set item = ListView1.ListItems.Add(, str1, str1, "lIcon", "sIcon")
strSex = "男"
If optWoman.Value Then strSex = "女"
item.SubItems(1) = strSex '性別
item.SubItems(2) = txtAddress.Value '地址
item.SubItems(3) = txtTelephone.Value '電話
item.SubItems(4) = txtMemo.Value '備註
End Sub
Private Sub cmdExit_Click()
Unload Me
End Sub
在上述表單打開後, 即可進行下面的操作:
-End-