Thomas Risi Softwareentwicklung
Addins - Datenbanklösungen - Komponenten - RTDServer - WebServices
Steuerelemente in Tabellenblatt
Um Steuerelemente in einem Tabellenblatt per Programm zu verändern/anzusprechen,
bietet sich ein Schleifenkonstrukt an. Dieses eignet sich z.B. dazu, die Elemente
einer bestimmten Klasse in einer Collection zu gruppieren.
Bei den seltsamen Bezeichnungen für die jeweiligen Steuerelemente handelt es
sich um ProgId's (Prorammatic Identifier). Ein ProgId ist quasi ein Synonym für
eine bestimmte Klasse, und deren GUID. In der Registry sind die ProgId's unter
HKEY_CLASSES_ROOT zu finden.
Beispiel 1: Code für Klassenmodul der Tabelle ...
Sub ChangeLBColor()
Dim item As Object
For Each item In Worksheets("Tabelle1").OLEObjects
If item.ProgId = "Forms.Label.1" Then
item.Object.BackColor = &H80FF25
End If
Next item
End Sub
Beispiel 2: Code für Klassenmodul der Tabelle ...
Const CHECKBOX = "Forms.CheckBox.1"
Const COMBOBOX = "Forms.ComboBox.1"
Const COMMANDBUTTON = "Forms.CommandButton.1"
Const IMAGE = "Forms.Image.1"
Const LABEL = "Forms.Label.1"
Const LISTBOX = "Forms.ListBox.1"
Const OPTIONBUTTON = "Forms.OptionButton.1"
Const SCROLLBAR = "Forms.ScrollBar.1"
Const SPINBUTTON = "Forms.SpinButton.1"
Const TEXTBOX = "Forms.TextBox.1"
Const TOGGLEBUTTON = "Forms.ToggleButton.1"
Sub ChangeLabels()
Dim item As Object
For Each item In Worksheets("Tabelle1").OLEObjects
If item.ProgId = LABEL Then
With item.Object
.BackColor = &H80FF25
.SpecialEffect = 3
End With
item.Left = 50
End If
Next item
End Sub
Beispiel 3: Code für Klassenmodul der Tabelle ...
Dim TextBoxes As New Collection
Sub TBCollection()
Dim item As Object
For Each item In Worksheets("Tabelle1").OLEObjects
If item.ProgId = TEXTBOX Then
TextBoxes.Add item
End If
Next item
IndexTest
End Sub
Sub IndexTest()
Dim i As Long
For i = 1 To TextBoxes.Count
MsgBox TextBoxes(i).Name
Next i
End Sub
© 2001 -
by Thomas Risi