Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
260to264
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
260to264
260to264
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Wozu Klassenprogrammierung?

Wozu Klassenprogrammierung?
23.05.2003 19:57:05
walter
Hallo alle zusammen!

Ich bin immer noch am hadern mit der Klassenprogrammierung.

Kann mir jemand einen Tipp oder einen Link geben wozu man, insbesondere in Excel, die Klassenprogrammierung braucht.
Ich habe zwar schon ein bischen verstanden wie man eine einfache Klasse programmiert, aber ich weiß nicht wozu.

Vielen Dank

Gruß Waler


7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Wozu Klassenprogrammierung?
23.05.2003 20:05:26
Jens_Pu

Hallo Walter,

hast Du schon mal in die Hilfe gaschaut?

Da steht:

Klasse

Die formale Definition eines Objekts. Die Klasse dient als Vorlage, aus der eine Objektinstanz zur Laufzeit erzeugt wird. Die Klasse definiert die Eigenschaften des Objekts und die Methoden, die zur Steuerung des Objektverhaltens verwendet werden.

Gruss Jens

Re: Wozu Klassenprogrammierung?
23.05.2003 20:21:22
walter

ich weiß, doch wo liegt die praktische Anwendung der Klassenprogrammierung in xl?

Beispielcode
23.05.2003 20:29:05
GraFri

Hallo

Anbei ein Beispielcode. Ich verwende ihn, um bei jeweils 3 Steuerelemente (ToggleButton, Label und TextBox) bei Klick auf das Toggle-Button die Hintergrundfarbe bzw. Schriftfarabe zu ändern.

' In ein Modul
'-----------------------------------------------------------------
' Im den Tabellenblätter befinden sich 3er Gruppen mit jeweils einem Togglebutton,
' einem Label und einer Textbox mit identischer Zeichenfolge im Namen (togSonder,
' labSonder, txtSonder - togBasis, labBasis, txtBasis usw.). Die Bezeichnung in
' den einzelnen Tabellenblättern kann auch gleich sein.

Option Explicit

Dim Toggles() As New FarbÄnderung

Private Sub Auto_Open()
Dim Anzahl As Byte
Dim a As Byte
Dim n As Byte
Dim namControl As String
Dim bezControl As String

bezControl = "Sonder-Basis-Jugend-Familien-Bündel-Van-LD" 'identische Zeichenfolge der 3er Gruppen

Anzahl = 0
For n = 1 To 2 ' Tabellenblatt 1 und 2 bzw. Sheets.Count für alle Tabellenblätter
For a = 1 To Sheets(n).OLEObjects.Count
namControl = Right(Sheets(n).OLEObjects(a).Name, Len(Sheets(n).OLEObjects(a).Name) - 3)
If InStr(bezControl, namControl) And Sheets(n).OLEObjects(a).Name Like "tog*" Then
Anzahl = Anzahl + 1
ReDim Preserve Toggles(1 To Anzahl)
Set Toggles(Anzahl).ToggleGroup = Sheets(n).OLEObjects(a).Object
End If
Next a
Next n

End Sub


' In ein Klassenmodul Name: FarbÄnderung
'-----------------------------------------------------------------
Option Explicit

Public WithEvents ToggleGroup As ToggleButton

Const Farbe1 As Long = &HFFFFFF 'weiß
Const Farbe2 As Long = &H808080 'grau
Const Farbe3 As Long = &H8000000F 'dunkelgrau
Const Farbe4 As Long = &HFFFFC0 'hellblau
Const Farbe5 As Long = &HC00000 'dunkelblau

Private Sub ToggleGroup_Change()
Dim TMP As String

TMP = Right(ToggleGroup.Name, Len(ToggleGroup.Name) - 3)

If TMP = vbNullString Then
Exit Sub
Else
With ActiveSheet
If ToggleGroup.Value = True Then
.OLEObjects("tog" & TMP).Object.BackColor = Farbe4
.OLEObjects("txt" & TMP).Object.BackColor = Farbe4
.OLEObjects("lab" & TMP).Object.ForeColor = Farbe5
Else
.OLEObjects("tog" & TMP).Object.BackColor = Farbe3
.OLEObjects("txt" & TMP).Object.BackColor = Farbe1
.OLEObjects("txt" & TMP).Object.Value = vbNullString 'Textboxinhalt löschen
.OLEObjects("lab" & TMP).Object.ForeColor = Farbe2

End If
End With
End If

End Sub


Vielleicht kannst du damit etwas anfangen.

mfg, GraFri

Anzeige
Re: Beispielcode
23.05.2003 21:43:37
andre

hallo GraFi,
beim Start der Datei kommt diese Zeile markiert:
Dim Toggles() As New FarbÄnderung
und der Fehler:
benutzerdefinierter Typ nicht definiert
gruss andre

Re: Beispielcode
23.05.2003 23:54:58
L.Vira

Der Name des Klassenmoduls muss exakt so sein: FarbÄnderung

Re: Beispielcode
23.05.2003 23:57:59
L.Vira

Wäre m.E. schon angebracht, die Quelle deines Codes zu nennen.

Beispielcode Quelle Zugvogel
24.05.2003 05:53:07
GraFri

Hallo

Sorry - Habe selbst ein ähnliches Beispiel von Zugvogel bekommen (http://spotlight.de/zforen/mse/m/mse-1053679466-7865.html). Dieses Beispiel diente als Vorlage und ich habe es dann etwas umgeschriebenund.

An dieser Stelle noch einmal ein großer Dank an Zugvogel.

mfg, GraFri

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige