Die VBA "public" Stichwort existiert, um VBA-Funktionen zugänglich zu anderen VBA-Funktionen und Unterprogramme machen . Insbesondere macht es möglich, dass ein VBA-Funktion oder "sub" , um eine Funktion in einem anderen Modul nennen . Zu wissen, wann die öffentliche Funktionen können Sie mit jemandem Studium Ihrer VBA-Programm , dass eine Funktion eine begrenzte Nutzung hat anzugeben. Dies hilft die Person zu verstehen, die Funktion die Rolle und die relative Bedeutung in Ihrem Programm. Zweck
Der Zweck einer öffentlichen Funktion ist es, komplette Zugriff auf eine Funktion aus einem anderen Unterprogramm in einer Excel-Arbeitsmappe zu stellen. Zum Beispiel, wenn Sie eine Funktion namens " ParseLastName " , dass eine Person den Nachnamen extrahiert aus einer Zeichenfolge , die sowohl Vor-und Nachnamen geschrieben habe , können viele Teile des VBA-Code in verschiedenen Kodierungsmodule verstreut , benötigen , um diese Funktion zu nutzen. Machen die Funktion Private würden die Module von der Verwendung zu verhindern " ParseLastName ", so stellen Sie diese Funktion Öffentlichkeit.
Erkenntnis
Sie können erkennen, ob eine Funktion ist öffentlich , indem sie nach die "public" -Schlüsselwort vor dem Schlüsselwort "function" in jedem Ort in VBA , wo Sie ein Unterprogramm , einschließlich der " ThisWorkbook " Modul-, Klassen -Modulen und den "Blatt " -Module, die für die einzelnen Unterprogramme Tabellenkalkulation in einer Excel-Arbeitsmappe halten schreiben können. Nicht alle öffentlichen Funktionen verwenden die "public" Stichwort , jedoch. Wenn dieses Schlüsselwort fehlt, ist die Funktion noch öffentlich , es sei denn, die "private" Stichwort , wie in hat "private Funktion someFunction . "
Sample Application
< p> Öffentliche Funktionen bieten die Möglichkeit, für die Erstellung von benutzerdefinierten Funktionen , die Listen in Excel seiner " Funktion einfügen "-Dialog in der " Formeln" tab. Um eine benutzerdefinierte Funktion , die die Anzahl der Tage bis zum nächsten Weihnachten berechnet erstellen , fügen Sie den folgenden ersten öffentlichen Funktion in einem neuen VBA-Modul , dann auf Excel zurück und klicken Sie auf den "FX" -Taste über dem Arbeitsblatt Netz. Klicken Sie auf " Benutzerdefiniert" Kategorie , doppelklicken Sie dann auf die Schaltfläche " DaysToChristmas " Element, das erscheint. Excel fügt Ihrer Funktion in das aktive Arbeitsblatt.
Public Function DaysToChristmas () As Integer Dim
Weihnachten
Dim CurrentYear As Integer
CurrentYear = Jahr ( Now)
Weihnachten = " 25.12 /" & CurrentYear
DaysToChristmas = DateDiff ( "d" , Now () , DateValue (Weihnachten) )
End Function
wann nicht
verwenden Sie nicht eine öffentliche Funktion , wenn Sie eine Unterroutine für den Einsatz in einem spezifischen Kontext geschrieben habe. Verwenden Sie eine private Feier statt . Zum Beispiel, wenn Sie eine Funktion abzustreifen das dritte Zeichen vom Anfang einer Zeichenfolge , und nur ein Unterprogramm ruft diese Funktion benötigen , schreiben Sie diese Hilfsfunktion in demselben Modul als Subroutine , die es braucht , und deklarieren Sie es privat. Die Gefahr der öffentlichen Deklaration ist, dass Sie später brauchen , um eine andere öffentliche Funktion mit dem gleichen Namen zu schreiben. VBA wird eine Fehlermeldung in diesem Fall angezeigt werden , weil sie nicht wissen, welche Funktion Sie ausführen sollen .