Esiste la parola chiave VBA "pubblico " per rendere accessibili le funzioni di VBA per altre funzioni VBA e subroutine . In particolare, si rende possibile per una funzione VBA o "sub " per chiamare una funzione in un altro modulo . Sapere quando utilizzare le funzioni pubbliche consente di indicare a chi studia il programma VBA che una funzione ha un uso limitato . Questo aiuta la persona a capire il ruolo della funzione e la relativa importanza nel programma. Scopo
Lo scopo di una funzione pubblica è quello di fornire l'accesso completo a una funzione da qualsiasi altra subroutine in una cartella di lavoro di Excel . Ad esempio , se hai scritto una funzione chiamata " ParseLastName " che estrae il cognome di una persona da una stringa che contiene sia nomi e cognomi , molte parti del codice VBA , sparsi in diversi moduli di codifica , possono avere bisogno di utilizzare questa funzione . Rendere la funzione privata impedirebbe quei moduli da utilizzare " ParseLastName , " in modo da rendere questa pubblica funzione .
Riconoscendo
È possibile riconoscere se una funzione è pubblica , cercando di la parola chiave " pubblica " prima della " funzione" parola chiave in qualsiasi luogo in VBA dove si può scrivere una subroutine , compresi i moduli, moduli di classe " ThisWorkbook " ed i moduli "Foglio" , che detengono subroutine per ogni foglio in una cartella di lavoro di Excel . Non tutte le funzioni pubbliche utilizzano la parola chiave "pubblica" , tuttavia. Se questa parola chiave non è presente , la funzione è ancora pubblica , se non ha la parola chiave "privato" , come in " funzione someFunction privato".
Sample Application
< p > le funzioni pubbliche di fornire i mezzi per la creazione di funzioni definite dall'utente che eccellono le liste nella sua finestra di dialogo " Inserisci funzione " nella scheda " formule " . Per creare una funzione definita dall'utente che calcola il numero di giorni fino al prossimo Natale , prima incollare il seguente funzione pubblica in un nuovo modulo VBA , per poi tornare a Excel e fare clic sul pulsante "FX" sopra la griglia del foglio di lavoro . Fare clic su " User defined " categoria , quindi fare doppio clic sulla voce " DaysToChristmas " che appare . Excel inserisce la funzione nel foglio di lavoro attivo .
Pubblici DaysToChristmas function () As Integer Dim
Natale
Dim CurrentYear As Integer
CurrentYear = Anno ( ora ) per
Natale = " 12/25 /" & CurrentYear
DaysToChristmas = DateDiff ( "d" , Now ( ) , DateValue ( Natale) ) per
End Function
quando non usare
non utilizzare una funzione pubblica , quando hai scritto una subroutine per l'uso in un contesto specifico . Utilizzare una funzione privata , invece. Per esempio, se avete bisogno di una funzione per togliere il terzo personaggio dal l'inizio di una stringa , e una sola subroutine chiamerà questa funzione , scrivere questa funzione di supporto nello stesso modulo come la subroutine che ne ha bisogno , e dichiararla privata . Il pericolo di dichiararlo pubblico è che si può poi bisogno di scrivere una funzione pubblica diversa con lo stesso nome . VBA visualizzerà un messaggio di errore in questo caso, perché non sa quale funzione si intende eseguire.