Hoe slaat en gebruikt u uw VBA-macro’s in alle werkmappen in Excel?
Er zijn talloze situaties waarin u dezelfde VBA-macro herhaaldelijk moet gebruiken in verschillende Excel-werkmappen — bijvoorbeeld voor het automatiseren van terugkerende berekeningen, het opmaken van gegevens of het toepassen van aangepaste functies zoals het omzetten van getallen naar woorden. Het probleem? Macro’s worden standaard alleen opgeslagen in de werkmap waarin ze zijn gemaakt, waardoor u ze niet direct kunt openen of hergebruiken in nieuwe documenten. Gelukkig biedt Excel diverse flexibele methoden om een VBA-macro globaal beschikbaar te maken, zodat u de code niet telkens opnieuw hoeft te kopiëren wanneer u een nieuw werkblad start. Deze handleiding bevat uitgebreide instructies voor meerdere benaderingen, zodat uw VBA-macro’s moeiteloos toegankelijk zijn in alle werkmappen — en uw productiviteit en workflow daarmee flink stijgen.

VBA-code opslaan en gebruiken in alle werkmappen
Methode persoonlijke macro-werkmap
Stel dat u getallen wilt omzetten naar de bijbehorende Engelse woorden met behulp van aangepaste VBA-code, en dat u deze functionaliteit altijd direct bij de hand wilt hebben – ongeacht de werkmap waarmee u werkt. Met de juiste aanpak slaat u uw VBA-modules op zodat ze herbruikbaar zijn wanneer u ze nodig heeft in Excel. Dit is vooral handig voor aangepaste functies of automatisering die u altijd wilt kunnen gebruiken, zonder de code steeds opnieuw in meerdere bestanden te hoeven kopiëren.
Hiervoor kunt u uw VBA-code verpakken als een aangepaste Excel-invoegtoepassing, die u in Excel kunt inschakelen om uw aangepaste functionaliteit wereldwijd beschikbaar te maken als een herbruikbare functie.
Volg deze stappen:
1. Druk in Excel op Alt + F11 om het venster „Microsoft Visual Basic for Applications” te openen.
2. Klik in de VBA-editor op Invoegen > Module en plak de volgende macro in het nieuw gemaakte modulevenster.
VBA-code: Omzetten Omzetten naar woorden
Function NumberstoWords(ByVal MyNumber)
'Update by ExtendofficeDim xStr As StringDim xFNum As IntegerDim xStrPointDim xStrNumberDim xPoint As StringDim xNumber As StringDim xP() As VariantDim xDPDim xCnt As IntegerDim xResult, xT As StringDim xLen As IntegerOn Error Resume NextxP = Array("", "Thousand ", "Million ", "Billion ", "Trillion ", " ", " ", " ", " ")
xNumber = Trim(Str(MyNumber))
xDP = InStr(xNumber, ".")
xPoint = ""
xStrNumber = ""
If xDP >0 ThenxPoint = " point "
xStr = Mid(xNumber, xDP +1)
xStrPoint = Left(xStr, Len(xNumber) - xDP)
For xFNum =1 To Len(xStrPoint)
xStr = Mid(xStrPoint, xFNum,1)
xPoint = xPoint & GetDigits(xStr) & " "
Next xFNumxNumber = Trim(Left(xNumber, xDP -1))
End IfxCnt =0xResult = ""
xT = ""
xLen =0xLen = Int(Len(Str(xNumber)) /3)
If (Len(Str(xNumber)) Mod3) =0 Then xLen = xLen -1Do While xNumber <> ""
If xLen = xCnt ThenxT = GetHundredsDigits(Right(xNumber,3), False)
ElseIf xCnt =0 ThenxT = GetHundredsDigits(Right(xNumber,3), True)
ElsexT = GetHundredsDigits(Right(xNumber,3), False)
End IfEnd IfIf xT <> "" ThenxResult = xT & xP(xCnt) & xResultEnd IfIf Len(xNumber) >3 ThenxNumber = Left(xNumber, Len(xNumber) -3)
ElsexNumber = ""
End IfxCnt = xCnt +1LoopxResult = xResult & xPointNumberstoWords = xResultEnd FunctionFunction GetHundredsDigits(xHDgt, xB As Boolean)
Dim xRStr As StringDim xStrNum As StringDim xStr As StringDim xI As IntegerDim xBB As BooleanxStrNum = xHDgtxRStr = ""
On Error Resume NextxBB = TrueIf Val(xStrNum) =0 Then Exit FunctionxStrNum = Right("000" & xStrNum,3)
xStr = Mid(xStrNum,1,1)
If xStr <> "0" ThenxRStr = GetDigits(Mid(xStrNum,1,1)) & "Hundred "
ElseIf xB ThenxRStr = "and "
xBB = FalseElsexRStr = " "
xBB = FalseEnd IfEnd IfIf Mid(xStrNum,2,2) <> "00" ThenxRStr = xRStr & GetTenDigits(Mid(xStrNum,2,2), xBB)
End IfGetHundredsDigits = xRStrEnd FunctionFunction GetTenDigits(xTDgt, xB As Boolean)
Dim xStr As StringDim xI As IntegerDim xArr_1() As VariantDim xArr_2() As VariantDim xT As BooleanxArr_1 = Array("Ten ", "Eleven ", "Twelve ", "Thirteen ", "Fourteen ", "Fifteen ", "Sixteen ", "Seventeen ", "Eighteen ", "Nineteen ")
xArr_2 = Array("", "", "Twenty ", "Thirty ", "Forty ", "Fifty ", "Sixty ", "Seventy ", "Eighty ", "Ninety ")
xStr = ""
xT = TrueOn Error Resume NextIf Val(Left(xTDgt,1)) =1 ThenxI = Val(Right(xTDgt,1))
If xB Then xStr = "and "
xStr = xStr & xArr_1(xI)
ElsexI = Val(Left(xTDgt,1))
If Val(Left(xTDgt,1)) >1 ThenIf xB Then xStr = "and "
xStr = xStr & xArr_2(Val(Left(xTDgt,1)))
xT = FalseEnd IfIf xStr = "" ThenIf xB ThenxStr = "and "
End IfEnd IfIf Right(xTDgt,1) <> "0" ThenxStr = xStr & GetDigits(Right(xTDgt,1))
End IfEnd IfGetTenDigits = xStrEnd FunctionFunction GetDigits(xDgt)
Dim xStr As StringDim xArr_1() As VariantxArr_1 = Array("Zero ", "One ", "Two ", "Three ", "Four ", "Five ", "Six ", "Seven ", "Eight ", "Nine ")
xStr = ""
On Error Resume NextxStr = xArr_1(Val(xDgt))
GetDigits = xStrEnd Function 3. Klik nu op het pictogram „Opslaan” linksboven in het venster of druk eenvoudigweg op Ctrl + S om het dialoogvenster „Opslaan als” te openen.
4. Voer in het venster „Opslaan als” de gewenste bestandsnaam in bij „Bestandsnaam”. Selecteer in de vervolgkeuzelijst „Opmaak opgeven voor opslaan” zeker Excel-invoegtoepassing (*.xlam).
5. Klik op de knop „Opslaan” om uw werkmap op te slaan als een Excel-invoegtoepassingsbestand en zo een herbruikbare invoegtoepassing te creëren die op elk moment voor elke werkmap kan worden ingeschakeld.
6. Nadat u het bestand hebt opgeslagen, keert u terug naar Excel en sluit u de werkmap die u zojuist hebt omgezet in een invoegtoepassing.
7. Open een nieuwe of bestaande werkmap waarin u uw macro wilt gebruiken en voer de aangepaste formule in de juiste cel in (bijvoorbeeld in B2):
=NumberstoWords(A2) 
Ga naar het tabblad Ontwikkelaar en klik op de knop Excel-invoegtoepassingen in de groep Invoegtoepassingen.
9. Selecteer in het verschijnende invoegtoepassingsdialoogvenster Bladeren.
10. Zoek het eerder opgeslagen invoegtoepassingsbestand, selecteer het en klik op OK.
11. Uw aangepaste invoegtoepassing, zoals „Getal naar woorden-omzetter”, verschijnt nu in de lijst met invoegtoepassingen. Zorg ervoor dat deze is aangevinkt en klik op OK om deze in te schakelen.
12. Voer nu opnieuw de aangepaste functie in de doelcel in (bijvoorbeeld B2) en druk op Enter. Vervolgens ziet u dat de formule de juiste Engelse woorden voor het getal retourneert.
=NumberstoWords(A2) 13. Sleep de automatisch-aanvullen-greep van de cel naar beneden om de conversieformule snel op meerdere getallen toe te passen.

Tips & opmerkingen:
- Door uw macro op te slaan als invoegtoepassing, kunt u dezelfde aangepaste functies, code of automatiseringen in al uw werkmappen gebruiken – een tijdbesparende oplossing die consistentie waarborgt.
- Wanneer Excel wordt afgesloten of de invoegtoepassing later wordt uitgeschakeld, kunnen functies uit de invoegtoepassing tijdelijk „#NAAM?" weergeven totdat de invoegtoepassing opnieuw is geladen. Zorg er daarom altijd voor dat de invoegtoepassing in het invoegtoepassingenbeheer is ingeschakeld wanneer deze nodig is, om verwarring te voorkomen.
- Sommige gebruikers zien het tabblad Ontwikkelaar niet standaard. Schakel het in door met de rechtermuisknop op het lint te klikken, „Het lint aanpassen” te selecteren en het vakje „Ontwikkelaar” aan te vinken.
- Het is een goede gewoonte om invoegtoepassingen op te slaan in een permanente map, zodat verwijzingen niet verloren gaan wanneer bestanden worden verplaatst of hernoemd.
Als u liever code handmatig uitvoert, kan dat ook en is soms nuttig bij foutopsporing of voor ad-hocgebruik:
- U kunt een macro toewijzen aan de werkbalk Snelle toegang, zodat u deze met één klik kunt uitvoeren in elke zichtbare werkmap. Klik hiervoor met de rechtermuisknop op de werkbalk Snelle toegang, kies ‘Werkbalk Snelle toegang aanpassen’ en voeg uw macro vervolgens toe.

- U kunt ook op Alt + F11 drukken om de VBA-editor te openen, uw macro handmatig selecteren en op F5 drukken om de code naar behoefte uit te voeren.
Voordelen: Met deze oplossing kunt u uitgebreide, herbruikbare macrofunctionaliteit maken en delen die altijd werkt — zolang de invoegtoepassing is ingeschakeld.
Nadelen: Gebruikers moeten eraan denken de invoegtoepassing te laden en, als ze werkmappen delen, ook het bestand van de invoegtoepassing én de functiedetails meesturen. Bovendien zijn invoegtoepassingen niet compatibel met Excel Online.
Een andere zeer praktische manier om uw favoriete of meest gebruikte macro’s in elke Excel-sessie direct beschikbaar te hebben – ongeacht welke werkmap u opent – is het gebruik van de persoonlijke macro-werkmap (PERSONAL.XLSB). Dit speciale, verborgen Excel-bestand wordt automatisch geladen bij het opstarten van Excel, zodat alle daarin opgeslagen macro’s in elke geopende werkmap toegankelijk zijn.
Toepasselijke scenario’s: Ideaal voor persoonlijke automatisering, routinematige opmaakscripts of hulpprogrammafuncties die u niet als formele Excel-invoegtoepassingen hoeft te delen. Macro’s in PERSONAL.XLSB zijn op uw computer beschikbaar, ongeacht welk bestand u opent.
Voordelen: Macro's zijn direct beschikbaar in uw lokale Excel-profiel en vereisen geen installatie van invoegtoepassingen of extra bestanden.
Nadelen: Op deze manier opgeslagen macro's werken alleen op de computer en onder het account waar PERSONAL.XLSB aanwezig is. Delen met anderen vraagt om handmatig exporteren en importeren van modules.
- Om deze methode te gebruiken, neemt u eerst een macro op of maakt u er een en zorgt u ervoor dat deze wordt opgeslagen in uw persoonlijke macro-werkmap.
Volg deze stappen:
- Open Excel. Klik op het tabblad Beeld, vervolgens op Macro’s en daarna op Macro opnemen.
- Selecteer in het dialoogvenster onder „Macro opslaan in” Persoonlijke macro-werkmap. Voltooi de opname (u kunt deze direct stoppen als deze niet nodig is).
- Druk op Alt + F11 om de VBA-editor te openen, waar u een project ziet voor PERSONAL.XLSB. Voeg hier een nieuwe module in of plak uw gewenste macrocode.
- Sla uw wijzigingen op. Excel maakt en onderhoudt de werkmap PERSONAL.XLSB automatisch in de opstartmap.
- Macro’s in PERSONAL.XLSB kunnen vervolgens worden uitgevoerd via het dialoogvenster Macro’s (Alt + F8), worden toegewezen aan knoppen op het lint of de werkbalk, of worden aangeroepen vanuit VBA.
Probleemoplossing en onderhoud: Als macro's in PERSONAL.XLSB niet beschikbaar zijn, controleer dan of Excel is gestart in de veilige modus of dat de beveiligingsinstellingen voor macro's zijn ingesteld op „Alle macro's uitschakelen.” PERSONAL.XLSB is standaard verborgen; als u het per ongeluk sluit zonder op te slaan of verwijdert, moet u mogelijk een macro opnieuw opnemen om het bestand opnieuw te genereren.
C:\Users\[YourUserName]\AppData\Roaming\Microsoft\Excel\XLSTART\PERSONAL.XLSBEen VBA-code om alle invoegtoepassingen in Excel weer te geven
In Excel kunt u invoegtoepassingen toevoegen om nog beter met uw gegevens te werken. Zoals u waarschijnlijk weet, kunt u via het venster Opties alle invoegtoepassingen bekijken — maar is er ook een manier om ze direct in een werkblad weer te geven? In deze handleiding bieden we u een handige VBA-code waarmee u alle invoegtoepassingen in Excel eenvoudig in een werkblad kunt tonen.
Hoe voert u een VBA-macro uit bij het openen of sluiten van een werkmap?
In dit artikel leg ik uit hoe u de VBA-code automatisch uitvoert telkens wanneer u de werkmap opent of sluit.
Hoe beveiligt of vergrendelt u VBA-code in Excel?
Net zoals u een wachtwoord kunt gebruiken om werkmappen en werkbladen te beveiligen, kunt u ook een wachtwoord instellen om uw macro’s in Excel te beschermen.
Hoe gebruikt u een tijdsvertraging na het uitvoeren van een VBA-macro in Excel?
Soms wilt u dat een VBA-macro in Excel pas na een korte pauze zijn effect heeft. Bijvoorbeeld: wanneer u op een macro klikt, wordt het resultaat pas na 10 seconden zichtbaar. In dit artikel leggen we uit hoe u dat voor elkaar krijgt.
Beste Office-productiviteitshulpmiddelen
Geef uw Excel-vaardigheden een boost met Kutools voor Excel en ervaar efficiëntie zoals nooit tevoren.Kutools voor Excel biedt meer dan 300 geavanceerde functies om de productiviteit te verhogen en Tijd besparen.Klik hier om de functie te krijgen die u het meest nodig heeft...
Office Tab brengt een tabbladinterface naar Office en maakt uw werk veel eenvoudiger
- Schakel tabbladbewerking en -lezen in voor Word, Excel, PowerPoint, Publisher, Access, Visio en Project.
- Open en maak meerdere documenten aan in nieuwe tabbladen binnen hetzelfde venster, in plaats van in afzonderlijke vensters.
- Verhoogt uw productiviteit met 50 % en bespaart u dagelijks honderden muisklikken!
Alle Kutools-add-ins in één installatieprogramma.
Kutools for Office bundelt add-ins voor Excel, Word, Outlook en PowerPoint, plus Office Tab Pro—ideaal voor teams die met meerdere Office-apps werken.
- Alles-in-één suite— add-ins voor Excel, Word, Outlook & PowerPoint plus Office Tab Pro
- Één installatieprogramma, één licentie— binnen enkele minuten klaar (MSI-geschikt)
- Werkt beter samen— gestroomlijnde productiviteit in alle Office-apps
- 30 dagen volledig functionele proefversie— geen registratie, geen creditcard
- Beste prijs-kwaliteitverhouding— bespaar ten opzichte van het afzonderlijk kopen van add-ins
