ich arbeite aktuell an einem kleineren Projekt in VBA. Um eine "Bearbeiten" Funktion einzurichten muss ich den Namen eines ausgewählten Objekts weitergeben. Bisher funktioniert die Ausgabe super für den Namen von Zellen. Wenn ich aber meine (gruppierte) Form auswähle gibt es keinerlei Ausgabe. Obwohl der Name des Objekts oben links in dem kleinen Fenster angezeigt wird. Wie könnte ich dieses Problem lösen?
- Debugger anwerfen
- durch den Object-Tree durchklickern und...
- nachschauen bei welcher Property der Name drin steht, den du erwartest
Wenn du von einer "gruppierten Form" redest, meist du sicherlich mehrere Shapes die zu einer Form gruppiert wurden - GroupShapes?
In jedem Fall würde ich abseits von der Name-Property mal nachschauen ob es evtl. irgendwo in der Hierarchie (also im Object-Tree) eine GroupName-Property gibt.
=> Warum reichst du den Namen weiter? Besser wäre es die Objekt-Instanz weiter zu reichen. Reichst du nur den Namen weiter gehen alle anderen Informationen ja wieder verloren und das nächste Mal fängst du wieder bei Null an.
Man könnte hier über einen objektbasierten Ansatz nachdenken, bei dem eine Klasse eine bestimmte Kanban-Form darstellt und Zugriff auf deren charakteristischen Elemente anbietet. Man könnte diesen Ansatz so weit treiben, dass alle Klassen das selbe Interface implementieren und darüber einheitlich im Code ansprechbar, ohne genau zu wissen was sich dahinte wirklich verbirgt. Ob sich dahinter also ein simples Shape verbirgt, oder ein GroupShapes-Objekt, oder etwas ganz anderes, wird in der jeweiligen Klasse wegabstrahiert. Das ist in VBA - mit mittlerem Aufwand - durchaus realisierbar, erfordert allerdings einiges an Erfahrung.
Ob das ein möglicher Ansatz wäre, müsste man jedenfalls zuerst überprüfen und bewerten.
Frameworks, hiermit sind Anwendungsbibliotheken gemeint die man in seiner eigenen Anwendungs einbinden und verwenden kann, sind jedenfalls ausschließlich nach diesem Prinzip designed.
Grüße
PS: Entsprechend GroupShapes Doku (learn.microsoft.com) hat solch eine Gruppe keinen Namen.
|