![]() |
Tipp 0178
|
Steuerelementgruppe erstellen (Tabellenblatt)
|
 |
|
Autor/Einsender: Datum: |
|
Angie 08.01.2006 (Update) |
|
Entwicklungsumgebung: |
|
Excel 2000 |
|
|
In Excel hat jedes Steuerelement (ActiveX-Control) auf einem Tabellenblatt seine eigenen Ereignisse, z.B. die CheckBoxen u.a.
das Click-Ereignis. Das heißt, dass mehrere CheckBoxen normalerweise nicht ein und die selbe Sub-Prozedur aufrufen können.
Dieser Tipp zeigt, wie dies doch möglich ist.
|
Zunächst wird ein Klassenmodul erstellt, hier mit Namen CCheckBox, und ein Objekt des Typs MSForms.CheckBox deklariert:
|
|
|
Public WithEvents g_objCheckBox As MSForms.CheckBox
|
|
|
Nachdem das neue Objekt deklariert worden ist, erscheint es im Objekt-Dropdown-Listenfeld im Klassenmodul. Die für das Objekt gültigen Ereignisse
(z. B. das Click-Ereignis) werden im Prozedur-Dropdown-Listenfeld aufgeführt.
|
|
Code im Codebereich des Klassenmoduls CCheckBox |
|
|
Option Explicit
Public WithEvents g_objCheckBox As MSForms.CheckBox
Private Sub g_objCheckBox_Click()
MsgBox g_objCheckBox.Name & " wurde angeklickt!" & vbCr & _
"Wert: " & g_objCheckBox.Value, _
vbInformation, Title:="VB-fun-Demo"
End Sub
|
|
|
Bevor jedoch die Ereignis-Prozeduren ausgeführt werden können, muss das deklarierte Objekt im Klassenmodul mit dem CheckBox-Objekt
auf der UserForm verbunden werden.
|
|
Code im Codebereich eines Moduls |
|
|
Option Explicit
Private m_objCheckBoxes() As New CCheckBox
Public Sub Init_CheckBoxes()
Dim objWks As Worksheet
Dim objCtl As OLEObject
Dim nCnt As Integer
Set objWks = ThisWorkbook.Worksheets(1)
For Each objCtl In objWks.OLEObjects
If objCtl.ProgId = "Forms.CheckBox.1" Then
nCnt = nCnt + 1
ReDim Preserve m_objCheckBoxes(1 To nCnt)
Set m_objCheckBoxes(nCnt).g_objCheckBox = _
objWks.OLEObjects(objCtl.Name).Object
End If
Next objCtl
Set objWks = Nothing
End Sub
|
|
|
Die Prozedur zum Initialisieren der CheckBoxen Init_CheckBoxes() wird beim Öffnen der Arbeitsmappe im
Workbook_Open-Ereignis aufgerufen.
|
|
|
|
Windows-Version |
95 |
 |
|
98/SE |
 |
|
ME |
 |
|
NT |
 |
|
2000 |
 |
|
XP |
 |
|
Vista |
 |
|
Win
7 |
 |
|
|
Excel-Version |
95 |
 |
|
97 |
 |
|
2000 |
 |
|
2002
(XP) |
 |
|
2003 |
 |
|
2007 |
 |
|
2010 |
 |
|
|
|
Download (17,2 kB)
|
Downloads bisher: [ 1821 ]
|
|
|