Thema Datum  Von Nutzer Rating
Antwort
11.09.2018 23:45:51 Stirni
NotSolved
12.09.2018 12:33:46 Flotter Feger
NotSolved
12.09.2018 19:55:11 Gast89541
NotSolved
13.09.2018 08:33:32 Ulrich
NotSolved
Rot Objekte einer Klasse registrieren für GET-Methode [VBA]
13.09.2018 11:45:22 Ulrich
NotSolved

Ansicht des Beitrags:
Von:
Ulrich
Datum:
13.09.2018 11:45:22
Views:
457
Rating: Antwort:
  Ja
Thema:
Objekte einer Klasse registrieren für GET-Methode [VBA]

Hallo,

so, ich mach noch mal ne Pause und antworte hier, weil ich glaube, mich nicht geschickt ausgedrückt zu haben:

Wenn ich dich richtig verstehe, dann wünscht du dir eine Möglichkeit, dass die Klasse (keine spezielle Instanz) alle deine aktuellen Instanzen kennt und dir eine bestimmte Instanz/Referenz zurückgibt könnte.

Bei dem, was ich jetzt schreibe, bin ich mir nicht 100%ig sicher, ob das stimmt (man möge mich bitte korrigieren, ich lerne gerne dazu!):
Zunächst: du kannst (in VBA) nicht auf Klassen zugreifen, sondern nur auf Instanzen von Klassen.
Für dein Vorgehen müsste es IMHO Klassenvariablen (im Gegensatz zu "Instanzvariablen") geben, auf die man von jeder Instanz aus zugreifen kann (gibt es zum Beispiel in Python). Dort könnte dann jede Instanz ihre Existenz hinterlegen. Da es in VBA aber keine Klassenvariablen gibt, geht das nicht.

Du benötigst also irgendwo ein "Verzeichnis von allen Teams".
Für mich heißt das, du baust entweder deine Klasse "Team" um zu "Teams", oder du "führst eben Buch", indem du alle Teams irgendwo auflistest (Collection, Array, ... meinetwegen auch eine weitere Klasse "clsTeams").

Falls du dich für eine Klasse entscheidest, die alle Teams aufnimmt (anstatt eine Klasse Team), dann hat Isabelle dir hier
http://www.office-loesung.de/ftopic544234_0_0_asc.php
vorgemacht, wie du mit
Attribute Item.VB_UserMemId = 0
eine Standardmethode festlegen kannst, damit du deine Teams mit Namen (Strings) ansprechen kannst:

Sub Bspl()
Dim dasTeam As clsTeams
Dim teams As New clsTeams

Call teams.addTeam("TEam1")
Call teams.addTeam("Team2")
Call teams.addTeam("Team2")

Debug.Print teams("Team1").Name             'TEam1

Set dasTeam = teams("Team2")
Debug.Print dasTeam Is teams("Team2")       'Wahr
End Sub

Grüße, Ulrich


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
11.09.2018 23:45:51 Stirni
NotSolved
12.09.2018 12:33:46 Flotter Feger
NotSolved
12.09.2018 19:55:11 Gast89541
NotSolved
13.09.2018 08:33:32 Ulrich
NotSolved
Rot Objekte einer Klasse registrieren für GET-Methode [VBA]
13.09.2018 11:45:22 Ulrich
NotSolved