Freigeben über


ListBox-Steuerelement, ColumnCount-Eigenschaft, ColumnWidths-Eigenschaft (Beispiel)

The following example uses the ColumnWidths property to change the column widths of a multicolumn ListBox. Im Beispiel werden drei TextBox-Steuerelemente verwendet, um die einzelnen Spaltenbreiten anzugeben, und das Exit-Ereignis wird verwendet, um die Maßeinheiten der einzelnen TextBox-Elemente anzugeben. Siehe auch die ColumnCount-Eigenschaft .

Kopieren Sie diesen Beispielcode in den Deklarationsbereich eines Formulars. Stellen Sie sicher, dass das Formular folgende Komponenten enthält:

  • Ein ListeBox -Steuerelement mit der Bezeichnung "ListBox1".
  • Drei TextBox -Steuerelemente mit der Bezeichnung "TextBox1" bis "TextBox3".
  • Eine Befehlsschaltfläche ( CommandButton ) mit der Bezeichnung "CommandButton1".

Try entering the value 0 to hide a column.

Dim MyArray(2, 3) As String 
 
Private Sub CommandButton1_Click() 
 'ColumnWidths requires a value for each column 
 'separated by semicolons 
 ListBox1.ColumnWidths = TextBox1.Text & ";" _ 
 & TextBox2.Text & ";" & TextBox3.Text 
End Sub
Private Sub TextBox1_Exit(ByVal Cancel As _ 
 MSForms.ReturnBoolean) 
 'ColumnWidths accepts points (no units), inches 
 'or centimeters; make inches the default 
 If Not (InStr(TextBox1.Text, "in") > 0 Or _ 
 InStr(TextBox1.Text, "cm") > 0) Then 
 TextBox1.Text = TextBox1.Text & " in" 
 End If 
End Sub
Private Sub TextBox2_Exit(ByVal Cancel As _ 
 MSForms.ReturnBoolean) 
 'ColumnWidths accepts points (no units), inches 
 'or centimeters; make inches the default 
 If Not (InStr(TextBox2.Text, "in") > 0 Or _ 
 InStr(TextBox2.Text, "cm") > 0) Then 
 TextBox2.Text = TextBox2.Text & " in" 
 End If 
End Sub
Private Sub TextBox3_Exit(ByVal Cancel as MSForms.ReturnBoolean) 
 'ColumnWidths accepts points (no units), inches or 
 'centimeters; make inches the default 
 If Not (InStr(TextBox3.Text, "in") > 0 Or _ 
 InStr(TextBox3.Text, "cm") > 0) Then 
 TextBox3.Text = TextBox3.Text & " in" 
 End If 
End Sub
Private Sub UserForm_Initialize() 
Dim i, j, Rows As Single 
 
ListBox1.ColumnCount = 3 
Rows = 2 
 
For j = 0 To ListBox1.ColumnCount - 1 
 For i = 0 To Rows - 1 
 MyArray(i, j) = "Row " & i & ", Column " & j 
 Next i 
Next j 
'Load MyArray into ListBox1 
ListBox1.List() = MyArray 
'1-inch columns initially 
TextBox1.Text = "1 in" 
TextBox2.Text = "1 in" 
TextBox3.Text = "1 in" 
End Sub

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.