Excel-macro's geschikt maken voor anderen
Pagina's in dit artikel
- Voorbereiding
- Map of add-in
- Menu's
- Toolbars
- Beperk toegang
- Code beveiligen
- Initialiseren
- Instellingen
- Talen
- Installatie
- Conclusie
Afschermen toegang tot subs en functies
Over het algemeen kennen hulpprogramma’s verschillende subroutines, ieder met specifieke taak of taken. Het is vaak wenselijk alleen die routines zichtbaar te hebben voor de gebruiker die toegang geven tot de gebruikersinterface van het hulpprogramma.
Standaard zijn alle Subs zichtbaar in het venster "Macro" dat kan worden geopend via Extra, Macro, Macro’s of door de toets alt-F8 in te drukken. Subroutines die het huishoudelijke werk van de invoegtoepassing uitvoeren horen niet in dit lijstje thuis.
De module "private" maken
Door de tekst
toe te voegen bovenaan een module (zie module modVoorbeeld04 in het bestand xlutil01.xls) worden alle subroutines in die module verwijderd uit de macro lijst. Hoewel deze subroutines nu niet meer zichtbaar zijn, kunnen ze nog wel via het macro venster worden gestart door hun naam in te typen.
De Subroutine Private maken
'Code
End Sub
Een nadeel van deze methode is, dat de subroutine niet meer toegankelijk is vanuit andere modules (kan ook gewenst zijn!).
Een optioneel argument gebruiken
Een andere methode is om alle subroutines die niet direct toegankelijk moeten zijn te voorzien van een argument:
'Code
End Sub
Omdat het argument optioneel is, kan deze weggelaten worden bij het aanroepen:
OnZichtbareSub
Veelgestelde vragen
Hoe kan ik macro's geschikt maken voor anderen in Excel?
Waarom is het belangrijk om toegang tot subs en functies af te schermen?
Hoe maak ik een module "private" in VBA?
Wat is het effect van de tekst 'Option Private Module' bovenaan een module?
Hoe kan ik een subroutine private maken in VBA?
Wat is een nadeel van het private maken van een subroutine?
Hoe gebruik ik een optioneel argument in een subroutine?
Hoe kan ik een subroutine met een optioneel argument aanroepen?
Welke subroutines horen niet zichtbaar te zijn in het macro venster?


