Thema Datum  Von Nutzer Rating
Antwort
Rot Eigenschaftsaufruf in verschachtelten Klassen und Übergabe an Funktionen
17.08.2017 10:43:21 Saturi
NotSolved
17.08.2017 11:01:52 SJ
*****
Solved
17.08.2017 11:23:07 Saturi
NotSolved
17.08.2017 11:26:33 SJ
*****
Solved
17.08.2017 11:27:27 SJ
NotSolved
17.08.2017 11:46:57 Gast31129
NotSolved

Ansicht des Beitrags:
Von:
Saturi
Datum:
17.08.2017 10:43:21
Views:
1085
Rating: Antwort:
  Ja
Thema:
Eigenschaftsaufruf in verschachtelten Klassen und Übergabe an Funktionen

Hallo Zusammen, ich beschäftige mich nun schon seit ein paar Tagen intensiv mit Klassen und deren Verwendung in VBA.

(Leider bin ich ein neuling in sachen VBA Programmierung)

Dabei stoße ich immer auf dieselben Probleme. Im Internet besteht ja eine unüberschaubare vielzahl an Forumsbeiträgen mit Fragen und meistens erfolgreichen Problemlösungs-Antworten. Leider scheine ich beim Suchen die falschen Suchbegriffe zu verwenden oder das Problem nicht richtig zu identifizieren.

Ich habe das ganze mal in Kurzfassung nachgebaut und hoffe, dass mir einer von euch Wissenden meine Fehler aufzeigen kann. Die Fragen stehen in den Kommentaren. vielen Dank

 

' ---------------------------------------Klassen--------------------------------
'Klasse Auto
Private mName As String
Private mReifen As Reifen

Private Sub Class_Initialize()
Set mReifen = New Reifen
End Sub

Public Property Get Name() As String
Name = mName
End Property

Public Property Let Name(ByVal newName As String)
mName = newName
End Property

Public Property Get ReifenEigenschaft() As Reifen
ReifenEigenschaft = mReifen
End Property

Public Property Set ReifenEigenschaft(ByVal ReifenEigenschaft As Reifen)
Set mReifen = ReifenEigenschaft
End Property
'Ende Klasse Auto

'Klasse Reifen
Private mGummi As String

Private Sub Class_Initialize()
mGummi = "nichts"
End Sub


Public Property Get Gummi() As String
Gummi = mGummi
End Property

Public Property Let Gummi(ByVal newGummi As String)
mGummi = newGummi
End Property
'Ende Klasse Reifen

' ---------------------------------------Funktionen--------------------------------
Private Sub Hauptprogramm()
Dim neuesAuto As Auto
Set neuesAuto = New Auto

neuesAuto.Name = "Rosti"


'Hier entsteht die 1. Fehlermeldung: Objektvariable oder With-Variable nicht festgelegt
'Dabei sollte doch die Reifeneigenschaft vorhanden sein. Habe die entsprechende Zeile dann auskommentiert und ein Workaround gebastelt

'neuesAuto.ReifenEigenschaft.Gummi = "Vollgummi"

'Ich umgehe den Fehler indem ich eine neues Element der Klasse Reifen erstelle
Dim DummyReifen As Reifen
Set DummyReifen = New Reifen
DummyReifen.Gummi = "Vollgummi"
Set neuesAuto.ReifenEigenschaft = DummyReifen
'Das widerum funktioniert soweit.. allerdings kann ich mir nicht vorstellen,dass man das immer so machen muss

Unterprogramm neuesAuto
End Sub

Private Sub Unterprogramm(ByVal newAuto As Auto)
Dim Reifengummi As String

'Hier die 2. Frage: Wie kann ich die Eigenschaft abfragen? Auch hier habe ich wieder das Problem, dass die "Gummi-Eigenschaft" nicht Existiert.
'in der Überwachung kann ich sehen, dass die Private Variablen sehr wohl Werte führen, nur die "Funktionsvariablen" (sofern mann sie so nennt) nicht.
Reifengummi = newAuto.ReifenEigenschaft.Gummi
MsgBox (Reifengummi)
End Sub

 


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
Rot Eigenschaftsaufruf in verschachtelten Klassen und Übergabe an Funktionen
17.08.2017 10:43:21 Saturi
NotSolved
17.08.2017 11:01:52 SJ
*****
Solved
17.08.2017 11:23:07 Saturi
NotSolved
17.08.2017 11:26:33 SJ
*****
Solved
17.08.2017 11:27:27 SJ
NotSolved
17.08.2017 11:46:57 Gast31129
NotSolved