wenn es auch vielleicht eine Frage eines "Beinahe-Daus" ist:
Hier wird öfters "PrivateSub" statt "Sub" in Lösungen angegeben. Wenn ich
so etwas mache, geht es zwar meistens, aber ich finde diese Makros nicht
wieder und ich kann sie auch keiner Schaltfläche zuweisen.
Und: warum benutzt man PrivateSub?
MfG
GvB
Gebhard von Busse schrieb:
> wenn es auch vielleicht eine Frage eines "Beinahe-Daus" ist:
das glaub ich aber jetzt nicht :-)
> Hier wird öfters "PrivateSub" statt "Sub" in Lösungen angegeben. Wenn ich
> so etwas mache, geht es zwar meistens, aber ich finde diese Makros nicht
> wieder und ich kann sie auch keiner Schaltfläche zuweisen.
> Und: warum benutzt man PrivateSub?
mit Private werden zum einen alle Ereignisprozeduren in Klassenmodulen deklariert.
Ansonsten deklariert man Sub-Prozeduren mit Private, damit sie nur durch andere
Prozeduren aus dem gleichen Modul aufgerufen werden können, in dem sie deklariert wurden.
Ein weiterer Vorteil ist zudem, dass sie nicht über den Menüpunkt Extras | Makro | Makros
angezeigt werden.
Du kannst sie aber dennoch ohne weiteres über obigen Dialog aufrufen, oder einer Schaltfläche zuweisen.
Entweder gibst du den Namen direkt ein, oder entfernst kurzfristig das Wort 'Private'
aus der Prozedur.
Subs ohne vorangestellte Deklaration sind default Public.
Dennoch schreibe ich gewöhnlich die Public Deklarierung dazu,
um auch für einen Außenstehenden sofort sichtbar zu machen,
dass es sich um eine globale Prozedur handelt.
--
Mit freundlichen Grüssen
Melanie Breden
- Microsoft MVP für Excel -
http://excel.codebooks.de (Das Excel-VBA Codebook)
#Excel-Auftragsprogrammierung#