Klassen

Hallo,
bin gerade dabei richtige Klassen in VBA zu lernen. Leider ist das etwas mühsam. Kennt jemand hier irgendwelche „Handbücher“ wo man das wirklich von der Pike - und verständlich - lernen kann?
Mir gehts hauptsächlich erst mal um Excel und Word-VBA.

Danke

bin gerade dabei richtige Klassen in VBA zu lernen. Leider ist
das etwas mühsam. Kennt jemand hier irgendwelche „Handbücher“
wo man das wirklich von der Pike - und verständlich - lernen
kann?

Hi Tobias,

sorry, der Begriff „Klassen“ ist mir zu vieldeutig, kannst du bitte genauer sagen was du meinst.

Gruß
Reinhard

Hallo Tobias,

um erst einmal das Grundlegende zu verstehen spielt es keinerlei Rolle ob nun Klassen unter VBA oder VB :wink:
Inwiefern es da nun Unterschiede von VB zu VBA gibt weiss ich net, da ich nur unter VB und VB.NET tippsle.

Aber ich denke mal das es da kaum Unterschiede gibt.
Auf deine Frage hin, welche Lektuere wohl gut sein soll. Eigentlich sollte in jedem guten Buch Klassen erlaeutert sein :wink:

Die Grundkenntnisse hast du aber hoffentlich schon erlangt?

MfG Alex

Hallo Anno1602 :smile:

ja, die Grundlagen sind da. Hab mir es selbst beigebracht vor Jahren und kann es häufig auch auf Arbeit nutzen. Hab jetzt mal nen Spiel geschrieben (in Excel) für „Turm von Hanoi“ (falls dir das was sagt). Dort habe ich bewegliche Schaltflächen integriert zum hin- und herschieben der „Ringe“. Oder Reversi und Schach programmiert in Excel (ok, noch Fehlerbehaftet aber da bin ich am überarbeiten :smile: )

Naja, Bücher … ich hab ein Buch über VBA da. Aber - von Klassen hab ich einfach nicht verstanden wie die das meinen. Vielleicht sollte ich doch noch mal durchlesen da ich das eine oder andere jetzt besser verstehen könnte (hab sie über ein Jahr nicht angefasst *g*).

LG

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Reinhard,

nun ja, bisher hab ich „einfach so“ immer programmiert. Ein Kollege hat mir aber versucht schmackhaft zu machen mit „Klassen“ zu arbeiten. Zb beim Schach eben nicht die Figuren über „normalen“ Code zu prüfen etc. sondern das über eigene Klassen zu tun. Haben auch schon angefangen eben eine Klasse „Bauer“, „Turm“ etc. zu erstellen usw. (weiß nicht wie ich es besser beschreiben soll). Macht sich auch irgendwie besser.
Jedenfalls möchte ich über die Grundlagen mehr bescheid wissen mit den Let-Get-Konstrukten, wie ich darauf zugreife etc. damit ich das ganze noch besser nachvollziehen kann was mein Kollege mir erzählt und auch schneller lernen kann.
LG

nun ja, bisher hab ich „einfach so“ immer programmiert. Ein
Kollege hat mir aber versucht schmackhaft zu machen mit
„Klassen“ zu arbeiten. Zb beim Schach eben nicht die Figuren
über „normalen“ Code zu prüfen etc. sondern das über eigene
Klassen zu tun. Haben auch schon angefangen eben eine Klasse
„Bauer“, „Turm“ etc. zu erstellen usw. (weiß nicht wie ich es

Hi Tobias,

ja, jetzt habe ich verstanden was du möchtest, kann dir da aber nicht weiterhelfen weil ich mich da auch nicht auskenne.

Aber schau mal hier, da gibts massig Spiele in Excel geschrieben, auch Chess und Reversi.

http://cheryl.tessari.com/downloads/Games/

Wobei ich Reversi für ein völlig bescheuertes Spiel halte.
Liegt eventuell, möglicherweise, damit zusammen daß ich da bisher immer nur verloren habe, noch nie ein einziges Spiel gewonnen habe :smile:)

Gruß
Reinhard

Hallo Tobias,

Hm, dir hier Klassen zu erklären wäre Wahnsinn :frowning:
Aber du musst es mal so sehen. Klassen in Verbindung mit einer Collection sind hervorragende Datenspeicher!
Auch kannst du Daten die in einer Klasse abgelegt sind, als Object ansehen und auch so handhaben :wink:
Ich kann dir beim besten willen nicht sagen, welches Buch da nun gut ist. Ich selbst habe etliche Bücher da, aber halt über VB und VB.NET und da sind Klassen sprich OOP hervorragend beschrieben! Das Thema geht da zum Bsp. weit ueber 200 Seiten. Aber die nun abzuschreiben, würde den Rahmen sprengen

Aber schau einmal hier nach

http://de.wikipedia.org/wiki/Objektorientierte_Progr…

Dort bekommst du einen kleinen Einblick in der Welt der OOP :wink:

Ich habe auch mal das gelesen was du dir mit Reinhard geschrieben hast. Wie ich mitbekomme willst du Klassen für Schach verwenden?
Das ist die beste Lösung, jedoch gehst du nen bissl falsch an die Sache ran.

Schau du hast doch

Bauer, Turm, Springer, Pferd, König, Dame

Das macht 6 verschiedene Figuren. Jedoch weissen alle Figuren gemeinsame Eigenschaften aus.
Ich würde an deiner Stelle eine Klasse Figur erstellen.
Danach noch die Klassen „Bauer“, Turm", „Pferd“, „Springer“,„König“, „Dame“. Diese 6 Klasse erben die Eigenschaften von der Klasse Figur!
In diese Klassen kannst du spezifische Methoden / Eigenschaften etc. schreiben. In der Klasse Figur, dagegen Methoden, Eigenschaften die alle Figuren betreffen!

Soweit alles klar?

MfG Alex

Ps: Aber mal eine blöde Frage. Wenn du nicht weisst wie du OOP machst, wie hast du es dann geschafft die Logik in dein Proggi zu bekommen?
Das ist ein Thema was ich bis heute noch nicht verstanden habe :frowning:

mh, die spiele sehen erst mal gut aus. Aber ohne Passwort komme ich an kein vba … :frowning:

Hallo Anno,

nun, der, von dem ich die Datei habe, hat die Figuren mit Buchstaben benannt (B = Bauer etc.). Somit brauchte ich nur beim Ablegen der Figur prüfen ob Zelle = B oder T(urm) oder L(äufer) und dann hab ich in der Abfrage eben die Prüfung durchgeführt. Eine „Schach“-Prüfung etc. - soweit war ich noch nicht.
Aber mit Klassen scheint es doch ne Ecke übersichtlicher zu sein.

Hallo Tobias,

man muesste halt sehen wie man was aufbaut. Aber wenn du eine Klasse hast, dann brauchst du nur auf die instanz zuzugreifen und dann zum Bsp. eine Methode Move zu implementieren die dann die Figur setzt. Dann koenntest du noch eine Methode Paint implementieren was dir dann die Figur zeichnet.
Wenn man bedenkt das man pro Figur einige Daten speichern muss, bietet sich schon eine Klasse in dem Falle an.

Was mir so spontan einfaellt.

Farbe der Figur
Typ der Figur
Position X
Position Y

MfG Alex

mh, die spiele sehen erst mal gut aus. Aber ohne Passwort
komme ich an kein vba … :frowning:

Hi Tobias,

bei Reversi ist doch gar keines.

Bei 1-2 zwei anderen kannst du mich ja mal anmailen, vielleicht sehe ich in meiner Glaskugel ja den Code…

Gruß
Reinhard

Hallo Reinhard,

stümmt mit Reversi. Hab nun nicht alle Dateien sofort durchgesehen *G*.
Aber vielleicht finde ich ja ein nettes Programm mit dem man selbst seine eigenen Dateien öffnen kann wo man zufälligerweise sein PW vergessen hat …

Hallo Anno,

danke für die Anregungen. Paint brauch ich nicht da ich in Excel einfach die Buchstaben benutze: T = Turm etc.

Deshalb habe ich nur ein Enum Farbe gemacht (Schwarz / weiß) und dann alle Figuren die es gibt in eine Connection eingefügt mit Farbe, Typ, dem Status „geschmissen“ und der Position (ich hab 64 Felder vergeben, macht sich einfach).
Und beim Bewegen guck ich jetzt in jede Klasse (Turm, Bauer …) und prüfe eben nun :smile:

LG