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.
Weitere Links zum Thema
Steuerelementgruppe erstellen (UserForm)

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: [ 1825 ]

Vorheriger Tipp Zum Seitenanfang Nächster Tipp

Startseite | Projekte | Tutorials | API-Referenz | VB-/VBA-Tipps | Komponenten | Bücherecke | VB/VBA-Forum | VB.Net-Forum | DirectX-Forum | Foren-Archiv | DirectX | VB.Net-Tipps | Chat | Spielplatz | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum

Seite empfehlen Bug-Report
Letzte Aktualisierung: Sonntag, 10. Juli 2011