HERBERS Excel-Forum - die Dialoge

Thema: ComboBox-Breite festlegen

Home
Die Breite der ComboBox wird während der Laufzeit in Abhängigkeit zum breitesten Element festgelegt. ComboBox-Breite festlegen
  • Prozedur: cmdListA_Click
  • Art: Ereignis
  • Modul: Klassenmodul der UserForm
  • Zweck: ComboBox-Breite festlegen
  • Ablaufbeschreibung:
    • Variablendeklaration
    • ComboBox zurücksetzen
    • Schleife bilden
    • Monatsnamen in String-Variable einlesen
    • String-Variable den ComboBox hinzufügen
    • Wenn die Länge der String-Variablen größer ist, als die bisher größte Länge...
    • Länge der String-Variablen in Integer-Variable einlesen
    • ComboBox-Breite auf das siebenfache der größten Textlänge setzen
    • 1. Listenelement auswählen
  • Code:

    
    Private Sub cmdListA_Click()
       Dim iRow As Integer, iMax As Integer
       Dim sTxt As String
       cboList.Clear
       For iRow = 1 To 12
          sTxt = Format(DateSerial(1, iRow, 1), "mmmm")
          cboList.AddItem sTxt
          If Len(sTxt) > iMax Then iMax = Len(sTxt)
       Next iRow
       cboList.Width = iMax * 7
       cboList.ListIndex = 0
    End Sub
    
  • Prozedur: cmdListB_Click
  • Art: Ereignis
  • Modul: Klassenmodul der UserForm
  • Zweck: ComboBox-Breite festlegen
  • Ablaufbeschreibung:
    • Variablendeklaration
    • ComboBox zurücksetzen
    • Schleife bilden
    • Langen Text in String-Variable einlesen
    • String-Variable den ComboBox hinzufügen
    • Wenn die Länge der String-Variablen größer ist, als die bisher größte Länge...
    • Länge der String-Variablen in Integer-Variable einlesen
    • ComboBox-Breite auf das siebenfache der größten Textlänge setzen
    • 1. Listenelement auswählen
  • Code:

    
    Private Sub cmdListB_Click()
       Dim iRow As Integer, iMax As Integer
       Dim sTxt As String
       cboList.Clear
       For iRow = 1 To 31
          sTxt = "Asbach, den " & _
             Format(DateSerial(Year(Date), 1, iRow), _
             "dd. mmmm yyyy")
          cboList.AddItem sTxt
          If Len(sTxt) > iMax Then iMax = Len(sTxt)
       Next iRow
       cboList.Width = iMax * 7
       cboList.ListIndex = 0
    End Sub