03.02.2017, 13:38
Liebes Forum,
zur Zeit programmiere ich in Excel VBA aus Spaß ein kleines Schachprogramm. Zunächst einmal, gibt es eine Alternative zu Public Variablen? Mir ist schon klar, dass man zugeordnete Werte in Klassenobjekten speichern kann, in diesem Fall speichere ich Figur und Figurfarbe in einem Feldobjekt, welche in einem Board(8, 8) Array zusammengefasst sind. Aber diese muss ich ja auch wieder global speichern. Und eine Routine zu schreiben, die aus dem Worksheet immer die derzeitige Position auslesen kann, ist ja irgendwie den Aufwand nicht wert, oder wäre das tatsächlich der bessere Weg? Außerdem kann man ja solche Dinge, wie zum Beispiel welche Farbe dran ist, auch schlecht aus der Position auslesen.
Manchmal lasse ich eine Routine durchlaufen, die eine globale Variable verändert, später ist diese dann aber leer. Kann es sein, dass die gelöscht werden wenn man bestimmte Dinge tut, z.B. Stellen im Code ändert?
Meine andere Frage bezieht sich auf Programmcode, der in einem bestimmten Worksheet stehen muss, um zu funktionieren. Speziell meine ich hiermit Worksheet_SelectionChange(), den ich brauche, um die Benutzerinteraktionen zu erkennen. Allerdings bin ich kein Freund davon, Programmcode außerhalb meiner Module stehen zu haben, da es in diesem Fall zum Beispiel verhindert, dass ich mein Schachbrett auf einem neuen Worksheet "aufbauen" kann. Gibt es eine Möglichkeit, eine Klickerkennungsfunktionalität irgendwie in ein Modul einzubauen, oder beim Erstellen eines neuen Tabellenblattes über eine Subroutine, dieses dann mit einem bestimmten Programmcode auszustatten? Oder lässt sich die Interaktionsfunktionalität irgendwie im Zusammenhang mit Klassenmodulen realisieren?
Ich wäre schon sehr dankbar, wenn mir jemand zu einzelnen Fragen ein paar Richtungen oder Möglichkeiten aufzeigen könnte. Vielen Dank!
zur Zeit programmiere ich in Excel VBA aus Spaß ein kleines Schachprogramm. Zunächst einmal, gibt es eine Alternative zu Public Variablen? Mir ist schon klar, dass man zugeordnete Werte in Klassenobjekten speichern kann, in diesem Fall speichere ich Figur und Figurfarbe in einem Feldobjekt, welche in einem Board(8, 8) Array zusammengefasst sind. Aber diese muss ich ja auch wieder global speichern. Und eine Routine zu schreiben, die aus dem Worksheet immer die derzeitige Position auslesen kann, ist ja irgendwie den Aufwand nicht wert, oder wäre das tatsächlich der bessere Weg? Außerdem kann man ja solche Dinge, wie zum Beispiel welche Farbe dran ist, auch schlecht aus der Position auslesen.
Manchmal lasse ich eine Routine durchlaufen, die eine globale Variable verändert, später ist diese dann aber leer. Kann es sein, dass die gelöscht werden wenn man bestimmte Dinge tut, z.B. Stellen im Code ändert?
Meine andere Frage bezieht sich auf Programmcode, der in einem bestimmten Worksheet stehen muss, um zu funktionieren. Speziell meine ich hiermit Worksheet_SelectionChange(), den ich brauche, um die Benutzerinteraktionen zu erkennen. Allerdings bin ich kein Freund davon, Programmcode außerhalb meiner Module stehen zu haben, da es in diesem Fall zum Beispiel verhindert, dass ich mein Schachbrett auf einem neuen Worksheet "aufbauen" kann. Gibt es eine Möglichkeit, eine Klickerkennungsfunktionalität irgendwie in ein Modul einzubauen, oder beim Erstellen eines neuen Tabellenblattes über eine Subroutine, dieses dann mit einem bestimmten Programmcode auszustatten? Oder lässt sich die Interaktionsfunktionalität irgendwie im Zusammenhang mit Klassenmodulen realisieren?
Ich wäre schon sehr dankbar, wenn mir jemand zu einzelnen Fragen ein paar Richtungen oder Möglichkeiten aufzeigen könnte. Vielen Dank!