Partager via


Modifier les largeurs de colonne d’une zone de liste à plusieurs colonnes

L’exemple suivant utilise la propriété ColumnWidths pour modifier les largeurs de colonne d’un listBox multicolonne. L’exemple utilise trois contrôles TextBox pour spécifier les largeurs de colonne individuelles et utilise l’événement Click pour spécifier les unités de mesure de chaque TextBox.

Pour utiliser cet exemple, copiez-en le code vers l’éditeur de script d’un formulaire. Pour exécuter le code, vous devez ouvrir le formulaire afin d’activer l’événement Open. Vérifiez que le formulaire contient :

  • un contrôle ListBox nommé ListBox1 ;

  • trois champs de texte personnalisés nommés Text1, Text2 et Text3 ;

  • trois contrôles TextBox nommés TextBox1, TextBox2 et TextBox3 liés aux champs de texte personnalisés mentionnés ci-dessus ;

  • CommandButton nommé CommandButton1.

Essayez d’entrer la valeur 0 pour masquer une colonne.

Dim MyArray(2, 3) 
Dim ListBox1 
Dim TextBox1 
Dim TextBox2 
Dim TextBox3 
Dim CommandButton1 
 
Sub Item_Open() 
Dim i, j, Rows 
 
Set ListBox1 = Item.GetInspector.ModifiedFormPages("P.2").ListBox1 
Set TextBox1 = Item.GetInspector.ModifiedFormPages("P.2").TextBox1 
Set TextBox2 = Item.GetInspector.ModifiedFormPages("P.2").TextBox2 
Set TextBox3 = Item.GetInspector.ModifiedFormPages("P.2").TextBox3 
Set CommandButton1 = Item.GetInspector.ModifiedFormPages("P.2").CommandButton1 
 
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 
Next 
 
ListBox1.List() = MyArray 'Load MyArray into ListBox1 
 
TextBox1.Text = "1 in" '1-inch columns initially 
TextBox2.Text = "1 in" 
TextBox3.Text = "1 in" 
 
End Sub 
 
Sub CommandButton1_Click() 
 'ColumnWidths requires a value for each column separated by semicolons 
 ListBox1.ColumnWidths = TextBox1.Text & ";" & TextBox2.Text & ";" & TextBox3.Text 
End Sub 
 
Sub Item_CustomPropertyChange(ByVal Name) 
msgbox Name 
Select Case Name 
Case "Text1" 
 '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 
Case "Text2" 
 '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 
Case "Text3" 
 '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 Select 
End Sub

Assistance et commentaires

Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.