如何判斷在清單方塊控制項中選取的項目


這份文件的 Microsoft Word 98 Macintosh 版本版本,請參閱201669

摘要


本文說明如何擷取從選取的項目
可讓您選取多個值的清單方塊控制項。

更多的資訊


Microsoft 會提供程式設計範例僅供說明,而不做任何明示或默示的保證。這包括,但不限於適售性或適合某特定用途之默示擔保責任。本文假設您已相當熟悉使用的我們所示範的程式設計語言以及建立和偵錯程序所使用的工具。Microsoft 技術支援工程師可以協助解釋特定程序中,功能,但它們不會修改這些範例以提供附加功能或建構程序來滿足您特定需求。

自訂表單中,當您將多重選取] 屬性設定為1-fmMultiSelectMulti [ ListBox ] 控制項中,您可以選取任何數目的項目從清單。例如,如果清單包含每週 (星期日,星期一、 星期二、 星期三、 星期四、 星期五和星期六) 的天數,您可以選取任何、 無、 或所有項目。

如果要判斷所選取的項目,您可以使用清單方塊中的 [選取] 屬性。清單方塊中的 [選取] 屬性是一個陣列的值,則為 True (如果已選取的項目) 或False ,每個值的所在 (如果尚未選取的項目)。

例如,如果清單包含七天的週星期日,星期二,並選取星期六,選取的屬性陣列會包含下列值︰
True 時,False、 為 true,則、 False、 False、 False、 True
因為選取第一個項目 (星期日)、 未選取 [第二個項目 (星期一)、 選取第三個項目 (星期二)、 四年級到第六個項目 (星期三、 星期四及星期五) 沒有選取,而且選取第七個項目 (星期六),也是如此。

Visual Basic 程序的範例

下列的巨集程式碼提供兩種方法可以使用 [從清單方塊選取的資料。第一種方法會使用一次選取一個項目,第二種方法建立的所有選取的項目清單。

注意建立自訂表單在 Visual Basic 編輯器] 中這些步驟假設您已瞭解 Visual Basic for Applications、 Microsoft Word 和 Microsoft 表單的設計與工具。
  1. 啟動 Visual Basic 編輯器。若要執行這項操作,請按 ALT + F11。
  2. 如果看不到 [內容] 對話方塊,請按一下 [檢視] 功能表上的 [內容]。
  3. 如果看不到 [專案總管] 視窗,按一下
    在 [檢視] 功能表上的專案總管] 中
  4. 在 [插入] 功能表上按一下
    自訂表單
  5. 按一下 [ ListBox ] 控制項上
    [控制工具箱] 中,然後將它拖曳到自訂表單
  6. 在 [屬性清單方塊 1 ] 視窗中,變更 [多重選取] 屬性為1-fmMultiSelectMulti的值。
  7. 按一下指令按鈕] 控制項上
    自訂表單,將CommandButton1控制在使用者表單上的 [控制工具箱] 中,,然後拖曳。
  8. 重複步驟 7,將第二個
    使用者表單上的指令按鈕。這會使
    CommandButton2使用者表單上的控制項。
  9. 連按兩下以顯示程式碼視窗的自訂表單自訂表單
  10. 按 PAGE down 鍵,然後鍵入下列的巨集程式碼Userform_InitializeCommandButton_Click事件︰
Private Sub UserForm_Initialize()
'Creates and assigns the Array to the ListBox when the form loads.
Dim mylist As Variant

mylist = Array("Sunday", "Monday", "Tuesday", "Wednesday", _
"Thursday", "Friday", "Saturday")
ListBox1.List = mylist

End Sub

Private Sub CommandButton1_Click()

'First Method: Displays individual selections one at a time.
For x = 0 To ListBox1.ListCount - 1

If ListBox1.Selected(x) = True Then
MsgBox ListBox1.List(x)
End If

Next x
Unload Me

End Sub

Private Sub CommandButton2_Click()

'Second Method: Displays all the items in one message box
Dim msg As String

For x = 0 To ListBox1.ListCount - 1

If ListBox1.Selected(x) = True Then
msg = msg & ListBox1.List(x) & vbCrLf
End If

Next x
MsgBox "You have selected " & vbCrLf & msg
Unload Me

'Uncomment the following two line to insert the variable
'into a document.
'Documents.Add
'Selection.TypeText Text:= msg

End Sub