Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

PrivateSub

0 views
Skip to first unread message

Gebhard von Busse

unread,
Feb 18, 2005, 3:17:00 PM2/18/05
to
Hi,

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

Melanie Breden

unread,
Feb 18, 2005, 2:58:05 PM2/18/05
to
Hallo Gebhard,

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#

0 new messages