Erweiterter Nutzen.
Salu Stephan,
Für’s Archiv: Dieser Zugriff funktioniert nur innerhalb einer
Mappe.
Du hast damit zwar das Problem gelöst, dass ein Anwender das
Worksheet umbenennen könnte, allerdings kann er es immer noch
löschen. Wenn man die Struktur des Workbooks schützt, kann der
Anwender weder umbennen noch löschen. Vorteil: Wenn du die
Variablen (Workbooks und Worksheets) sauber delarierst und die
richtigen Namen zuweist, sollte dass auch mappenübergreifend
funktionieren.
Das ist nicht ganz richtig: Es sind zwei Probleme gelöst, nämlich das von Dir bereits erwähnte Umbenennen, aber auch das Verschieben/Umstellen der Blätter! Und eigentlich kommt drittens noch hinzu, daß auch der Entwickler die Blätter problemlos umbenennen und verschieben kann, ohne auf den Code achten zu müssen.
Die Anwendbarkeit ist nämlich auch vor allem in der Entwicklungsphase einer Mappe von Bedeutung: Der Auftraggeber will eine Mappe mit bestimmten Eigenschaften, Funktionen, Layouts etc. und schraubt immer mal wieder daran herum, sprich: er verschiebt und benennt um. Da wäre eine saubere Deklaration siemlich sisyphosig. Wenn die Mappe dann steht und auf den Anwender losgelassen wird, wird ihre Struktur natürlich geschützt, das war auch schon vorher so.
Durch den Blattzugriff mittels Codenamen kann man aber nun auch scriptgesteuerte Blattnamen-Änderungen vornehmen, ohne das Script auf die Blattreihenfolge festzunageln. Dem Entwickler bleibt dann immer noch die Möglichkeit, dynamisch benamste Blätter zu verschieben.
Auch mappenübergreifend ist der Codename verwendbar, nur eben nicht so elegant, da er nur als Eigenschaft ausgelesen, nicht aber in einer Methode verwandt werden kann.
Bestliche Grüße :o)
-Rob.