De VBA " publiek " keyword bestaat om VBA- functies toegankelijk zijn voor andere VBA- functies en subroutines maken . Specifiek maakt het mogelijk een VBA functie of "sub " naar een functie in een andere module roepen . Weten wanneer je moet publieke functies te gebruiken kunt u aangeven om iemand te bestuderen uw VBA -programma , dat een functie heeft een beperkt gebruik . Dit helpt de persoon de rol van de functie en het relatieve belang in het programma te begrijpen . Doel Het doel van een publieke functie is om volledige toegang tot een functie van een andere subroutine in een Excel-werkmap te bieden . Bijvoorbeeld , als u een functie genaamd " ParseLastName " dat vorige naam van een persoon haalt uit een string met zowel voor-en achternaam hebt geschreven , kan vele delen van uw VBA-code , verspreid over verschillende codering modules , nodig om deze functie te gebruiken . De functie prive maken zou voorkomen dat die modules gebruiken " ParseLastName , " dus maak deze functie publiek . Herkennen U kunt herkennen als een functie is openbaar door te kijken naar de "openbare " keyword vóór het trefwoord " functie " in elke plaats in VBA waar u een subroutine , met inbegrip van de " ThisWorkbook " module , klasse modules en de " Sheet " modules, die subroutines voor elk werkblad in een Excel-werkmap te houden kan schrijven . Niet alle publieke functies gebruik maken van de "openbare " keyword , echter. Als dit zoekwoord ontbreekt , de functie is nog steeds openbaar , tenzij deze de "prive " keyword , zoals in " prive-functie someFunction . " Sample Application Publieke functies bieden de middelen voor het maken van door de gebruiker gedefinieerde functies die lijsten Excel in zijn " Insert functie " dialoogvenster in het tabblad " Formules " . Naar een door de gebruiker gedefinieerde functie die het aantal dagen tot de volgende kerst berekent maken , eerst het volgende publieke functie in een nieuwe VBA -module plakken , dan terug naar Excel en klik op de " Fx " knop boven het werkblad net. Klik op de categorie " User defined " , dubbelklik op de " DaysToChristmas " -item dat wordt weergegeven . Excel voegt uw functie in het actieve werkblad . Overheidsfunctie DaysToChristmas ( ) As Integer Dim Kerst Dim CurrentYear als Geheel CurrentYear = Jaar ( nu ) Kerst = " 25/12 /" & CurrentYear DaysToChristmas = DateDiff ( " d " , now ( ) , DateValue ( Kerst ) ) End Function < br > wanneer niet te gebruiken heb een publieke functie niet gebruiken wanneer u een subroutine voor gebruik in een specifieke context heb geschreven . Gebruik een priveaangelegenheid plaats . Bijvoorbeeld , als u een functie nodig hebt om deze functie strip uit het derde teken van het begin van een string , en slechts een subroutine zal noemen , schrijft deze helper functie in dezelfde module als de subroutine die het nodig heeft , en het private verklaren. Het gevaar van aangifte te doen publiek is dat u later nodig hebt om een andere publieke functie met dezelfde naam te schrijven . VBA zal een foutmelding in dit geval , omdat het niet weet welke functie u wilde uitvoeren .
|