Klassenprogrammierung in Word/Excel

Hallo,

ich tue mich schwer mit den üblichen Tutorials, bei denen man die Klasse „Tier“ hat und dann kann die Katze „Miau“ und der Hund „Wauwau“.

Gibt es deutschsprachige Tutorials in denen man das mal in einem „Richtigen“ Beispiel erklärt bekommt?

Also was man warum tun muss, damit es genau „so“ zu einem guten Ergebnis führt.
Vielleicht ein einfaches Spiel wie „4 gewinnt“ in Excel oder so.

Gruß und Danke für evtl. Tipps
Tobi@s

Hallo,

was du brauchst, wenn du von Klassen sprichst, sind Grundlagen der objektorientierten Programmierung. Dann solltest du aber auch eine richtige Programmierumgebung benutzen, und nicht ein Textverarbeitungsprogramm oder eine Tabellenkalkulation. Du kannst in beiden zwar auch (in VBA) programmieren, um z. B. bestimmte Abläufe zu vereinfachen, aber wenn ich etwas von „4 gewinnt“ lese, dafür ist ganz sicher Excel nicht die geeignete Software.

Gruß
Christa

4 Like

Vielleicht solltet du dir klar machen, dass die Makros in Excel KEINE PROGRAMMIERSPRACHE sind. Und vor allem nicht so benutzt werden sollten.

In Zeiten von Ransomware sollten ALLE MAKROS ABGESCHALTET WERDEN!

Noch nie was von „Emotet“ gehört?

Die grundlegenden Begriffe der Objektorientierung kann er sich mit VBA schon ganz gut erarbeiten, und auch selbst einfache Klassen implementieren.
Aber ja, für alles, was darüber hinaus geht (z.B. Vererbung), ist er mit anderen Tools besser beraten.

Och naja… es gibt da schon Lösungen…

Gruß,

Kannitverstan

Richtig. Sie sind in der Programmiersprache VBA verfasster prozeduraler Code, der von einem Interpreter abgearbeitet wird.

Gruß,

Kannitverstan

Du meinst sowas hier? https://www.activevb.de/tutorials/tut_klassen/klassen.html
Wo genau liegt denn dein Verständnisproblem - abgesehen davon, dass die beiden Tiere sich hier nach „kratzen“ und „beißen“ unterscheiden anstatt nach ihrer Lautäußerung?

Gruß,

Kannitverstan

Ja. Man kann auch mit dem Möbelwagen zur Arbeit fahren. Oder Schrauben mit dem Vorschlaghammer in den Dübel drücken. Kann man alles machen. Ist dann halt Kacke.

2 Like

Hm. Kacke ist so ein breiiger Begriff… natürlich kann man das Ding auch in Java oder C++ oder C# programmieren und ja, möglicherweise kommt man damit sogar schneller zu besseren Ergebnissen.
Aber wir reden hier weder davon, dass es eine 3D-Grafik haben soll, noch davon, dass eine ausführbare Datei rauskommen muss, noch dass es plattformunabhängig sein soll, noch sonstwas.
Hier geht es darum, einfach mal für Spaß - und zum Lernen - das Spielprinzip umzusetzen. Dafür ist Excel vielleicht nicht optimal, aber jedenfalls nicht „ganz sicher nicht geeignet“. Andere haben da viel komplexere Spiele implementiert.

Gruß,

Kannitverstan

dessen Arbeitskollege tatsächlich im LT28 zur Arbeit fährt :wink:

Doch, genau das ist es. Es geht ja nicht darum, aus Jux ein Spiel zu programmieren, sondern das Programmieren mit einem ungeeigneten Werkzeug zu lernen.

Mit einem Aldi-Akkuschrauber reißt man keine Betonwände ein, Segeln lernt man nicht auf einem selbstgebastelten Floß in der Badewanne, Programmieren lernt man nicht mit Excel-VBA. Wer letzteres trotzdem versucht, bekommt zurecht(!) die Quittung in Form von Emotet und bezahlt obendrein als Strafe auch noch das Abo bei MS.

2 Like

Während sie objektorientiertes Programmieren erlernt haben?

Natürlich kann ich in Assembler Datenbankabfragen programmieren und erlernen, natürlich kann ich SQL während einer Übung Maschinensteuerelemente einbinden - aber eben WIESO? zum Teufel sollte ich das tun, wenn es die falsche Umgebung zum Realisieren UND Erlernen ist?

Das kann ich machen, wenn ich es schon kann, weil mir gerade stinklangweilig ist oder ich in geistlicher Umnachtung eine Wette abgeschlossen habe (jop, sowas kann mal passieren :confounded: ), aber nicht, wenn ich es gerade frisch frei fröhlich neu gerade erst erlernen will.

Grüße,
Tomh

2 Like

Editieren nicht (mehr?) möglich, aber das „geistliche“ hat mir das „geistige“ geraubt …

Mir hat’s gefallen. :slight_smile:

1 Like

Hallo Christa,

du magst der Meinung sein, das VBE keine „richtige“ Programmierumgebung ist - aber das war nicht meine Frage oder Anliegen.

ich WEIß, was man so alles in VBA machen kann und ich WEIß auch, dass man in VBA mit Klassen programmieren kann. Und genau DAS möchte ich verstehen. Denn diese Klassen funktionieren genauso mit OOP wie bei Java oder anderen Sprachen.
ICH nutze aber sehr oft VBA (da ich ausschließlich im MS-Office-Paket arbeite) und da nutzt es mir NICHTS wenn ich Java kann. Das kann und darf ich auf Arbeit nicht nutzen. Punkt. Fertig.

Und ob du Excel dafür geeignet hältst - auch das fragte ich nicht. Ich WEIß, dass man auch ein 4-gewinnt in Excel programmieren kann. Habe ich selbst gemacht. Nur halt nicht in „Klassen“ programmiert.

Gruß Tobi@s

Eben. vor allem, da ich gucken muss, mit was ich auf Arbeit arbeiten DARF.
Und da brauche ich keine Lösungen a la „nimm doch Java“

Danke für den einzigen Link, der darauf hinarbeitet, meine Frage zu beantworten.

nur weil du meinst, dass das Kacke ist, heißt es nicht, dass es tatsächlich Kacke ist.
Wenn ich nur einen Vorschlaghammer habe, werde ich den Dübel damit auch reinhauen. Isso.

Und ich weiß, dass man mit VBA Klassen programmieren kann. Ich brauche keine „große Umgebung“ wie Java oder C#.
Meine Frage war doch eigentlich da recht eindeutig. Egal ob du das für gut erachtest oder nicht.

Und dir braucht nicht zustehen, ob das dafür geeignet ist oder nicht.
Und doch, auch mit VBA kann man programmieren lernen.
Wäre schön, solches überhebliche Gequirle zu unterlassen.

Programmieren heißt ja nicht „unendlich große Exe-Dateien zu erstellen“. Programmieren heißt, Dinge zu automatisieren. Und das mache ich, nutze ich. Und auf Arbeit arbeiten wir nun mal mit MS-Office. Da kann ich nicht einfach sagen „Leute, so will ich das nicht.“ Da sitze ich an der verkehrten Stelle.

ist ja schön, wenn du Assambler kannst und Datenbankabfragen im FF programmieren kannst.
Aber - das brauche ich nicht, das möchte ich jetzt nicht und das war auch nicht meine Frage.

Meine Frage ist eindeutig gestellt.
Ich habe auch nicht gesagt „leute, erzählt mir mal, was IHR meint, welche Programmieroberfläche gut ist um OOP zu lernen“. Also haltet euch da mal bitte zurück.

Eine konkrete Frage - eine konkrete Antwort. oder man kann schweigen.
Diskutieren, welche Oberfläche die bessere ist, könnt ihr wo anders.

Genau. Und was interessiert es dich, dass da halt Sicherheitslücken vorprogrammiert sind. Du bist doch schließlich nicht für deine Arbeit verantwortlich.

Habe ich schon mal das Stichwort „Emotet“ erwähnt?

Wenn Architekten ihre Häuser so bauen würden wie Programmierer (oder die, die sich dafür halten) ihre Software, könnte ein einziger Specht die gesamte Zivilisation zum Einsturz bringen.

2 Like

HalloTobi,

richtig, deine Aussage war:

also konnte man daraus nur schließen, dass du keine Ahnung von objektorientierter Programmierung hast, sonst hättest du auch einfach die Klasse Tier durch die Klasse Spielfigur einfach ersetzen können.

Deswegen schrieb ich auch

Und dass du

für die Arbeit brauchst, wage ich zu bezweifeln.

Die Begriffswahl zeigt, dass du leider nicht mal grundlegendste Programmierkenntnisse hast. Keiner außer dir hat den Begriff in diesem Thread erwähnt. Das hat mit Überheblichkeit nichts zu tun, sondern damit, dass wenn man etwas tut, was sicherheitsrelevant sein kann, auch Ahnung davon haben sollte. Und wenn man keine Ahnung hat, sollte man die Finger davon lassen und es jemanden tun lassen, der weiß, was er tut.

Nö. Und wir sind hier auch nicht beim Penisvergleich, wer den größten hat, ich habe nämlich gar keinen.


Unter dem Begriff Programmieren versteht man die Umsetzung von Software-Entwürfen. Welche Programmiersprache zum Einsatz kommt, hängt von der jeweiligen Aufgabe ab. Gutes Programmieren zeichnet sich stets durch das Einhalten bestimmter Qualitätskriterien aus.

Programmieren ist also ein bisschen mehr als bloß irgendwelche Dinge zu automatisieren, sorry.

Ich schrieb übrigens auch:

Dann stell deine Frage vernünftig, mit einem Beispiel, welches an deiner konkreten Anwendung angelehnt ist, und dann bekommst du auch vernünftige Antworten, die dir bei deinem konkreten Problem helfen und nicht irgendwas von einem unnützen Spiel, welches du dann wieder nicht übertragen hast, ähnlich wie die Klasse Tier.

Gruß
Christa

3 Like

du weißt weder, was ich konkret mache, wer das in die Hand bekommt etc.
Es gäbe die Programmiersprache VBA nicht, wenn es keine Nutzer dafür gäbe.
Aber DAS ist hier nicht das Thema.

Und nein, dass hätte ich eben nicht tun können.
Denn ich weiß nicht, was ich konkret schreiben muss, DAMIT meine Spielfigur sich von A nach B bewegt und WARUM ich das gerade „so“ und nicht „anders“ schreiben kann.

Kennst du dich mit VBA soweit aus, das du mir das erklären könntest?

Ja, das Spiel wäre auch nicht für die Arbeit. Das Spiel wäre ein Beispiel von dem ich weiß, dass ich dadurch die ersten Anläufe verstehen werde. Und dann kann ich es auf Dinge umwandeln, die ich auf Arbeit benötige.

Tja, meine Kollegen würden es jemandem geben, der mehr Ahnung davon hat. Gibt es aber nicht. Und bisher fanden sie das, was ich programmiert habe, recht gut.

Meine Frage war nicht un-vernünftig, vielleicht etwas unverständlich. Aber - dazu kann man ja nachfragen.
Auch habe ich ein konkretes Beispiel gebracht: 4 gewinnt in Excel auf OOP-Basis.

Wenn du VBA kannst, dann kannst du gern weiter schreiben, wenn nicht, wäre es schön, das Gespräch hier zu beenden. Denn dann kannst du mir nicht helfen.

Gruß