Excel VBA met AI: code schrijven en veilig testen (2026)
Gebruik AI als hulp bij Excel VBA, van een controleerbaar werkcontract en veilige prompt tot compileren, stap voor stap testen en ondertekenen.
AI kan VBA-code voorstellen, uitleggen en beoordelen, maar zo'n voorstel is pas bruikbaar nadat jij de werking en bijwerkingen hebt gecontroleerd. Werk daarom met een vast contract, testdata en een aparte werkmapkopie, en voer eerst alleen niet-schrijvende code uit voordat een macro gegevens mag wijzigen.
Wat AI bij Excel VBA wel en niet doet
Een taalmodel kan een probleembeschrijving omzetten in pseudocode, een VBA-concept opstellen en aandachtspunten in bestaande code aanwijzen. Het kan ook overtuigend klinkende fouten maken, dus OpenAI adviseert om belangrijke technische informatie te controleren en AI-uitvoer als eerste versie te behandelen.
Kies een hulpmiddel op basis van je eigen werkomgeving, gegevensbeleid en gewenste manier van werken. ChatGPT met Excel, ChatGPT voor code schrijven en Copilot in Excel hebben verschillende werkstromen, maar geen van deze routes bewijst dat een macro in jouw werkmap correct of veilig zal draaien.
VBA werkt met objecten zoals Workbook, Worksheet en Range. De officiële introductie tot VBA en het Excel-objectmodel zijn daarom de referenties waarmee je voorgestelde objecten, eigenschappen en methoden controleert.
Stappenplan: van probleem naar gecontroleerde macro
Stap 1: schrijf eerst een werkcontract
Beschrijf de taak voordat je code laat maken. Leg minimaal vast:
- welke werkmap en welke benoemde werkbladen binnen bereik vallen;
- welke kolommen of benoemde bereiken de invoer en uitvoer vormen;
- welke rijen meetellen, inclusief lege waarden, dubbele waarden en grensgevallen;
- wat de macro wel mag lezen en later eventueel mag wijzigen;
- welke acties verboden zijn, zoals bestanden openen, gegevens verwijderen, e-mail verzenden of netwerkverkeer starten;
- welke uitkomst, rij-aantallen en controletotalen aantonen dat de taak geslaagd is;
- wat er moet gebeuren als een werkblad, bereik of verwachte waarde ontbreekt.
Dit contract is de basis voor je prompt, je codebeoordeling en je acceptatietest. Voor meer houvast bij de formulering kun je de gids goede prompts maken gebruiken.
Stap 2: maak minimale, herkenbare testdata
Maak een aparte kopie van de werkmap en vervang gevoelige gegevens waar mogelijk door fictieve waarden. Neem alleen de kolommen en een klein aantal rijen op die nodig zijn om deze gevallen te testen:
- een normale rij die verwerkt moet worden;
- een rij die buiten de selectie valt;
- een lege of ontbrekende waarde;
- een dubbele waarde;
- een grenswaarde;
- een bewust foutieve waarde.
Schrijf de verwachte uitkomst per geval vooraf op. Daarmee controleer je gedrag in plaats van alleen te kijken of Excel geen foutmelding toont.
Stap 3: geef AI grenzen, controles en uitvoervorm mee
Een bruikbare prompt vraagt niet meteen om een grote macro. Gebruik bijvoorbeeld deze structuur:
Zet mijn werkcontract eerst om in pseudocode en noem onduidelijkheden voordat je VBA voorstelt. Maak daarna alleen een eerste, niet-schrijvende versie die de beoogde werkmap en werkbladen rapporteert. Gebruik
Option Explicit, kwalificeer alle Excel-objecten viaThisWorkbook, gebruik geenActiveWorkbook,ActiveSheetofSelection, open geen bestanden, start geen netwerk- of e-mailactie en wijzig, verwijder of sla niets op. Leg na de code uit welke bijwerkingen een latere schrijvende versie zou kunnen hebben en geef testgevallen met verwachte uitkomsten.
Verwijder persoonsgegevens, bedrijfsgeheimen, sleutels en wachtwoorden voordat je code of werkmapcontext deelt. Lees bij twijfel eerst hoe je ChatGPT en privacy beoordeelt.
Stap 4: review de code op bijwerkingen
Lees de voorgestelde code volledig voordat je haar in Excel plakt. Controleer ten minste:
- Objectkwalificatie: verwijst ieder werkblad en bereik expliciet naar
ThisWorkbook, of leunt de code op de actieve werkmap, selectie of cel? - Schrijfacties: worden celwaarden, formules, opmaak, namen, filters of werkbladen aangepast, gewist of verwijderd?
- Bestandsacties: opent, bewaart, hernoemt, exporteert of sluit de code bestanden?
- Externe acties: gebruikt de code Outlook, shell-opdrachten, netwerkadressen, add-ins of andere applicaties?
- Automatische gebeurtenissen: staat de code in
Workbook_Open,Worksheet_Changeof een andere eventprocedure die zonder een aparte startactie kan draaien? - Lussen en bereiken: kunnen de beginrij, laatste rij of lusvoorwaarden buiten het bedoelde bereik komen?
- Foutpaden: stopt de macro gecontroleerd en worden applicatie-instellingen ook na een fout teruggezet?
Vraag AI gerust om een tweede review, maar controleer de bevindingen zelf tegen het objectmodel en je werkcontract.
Stap 5: begin met een niet-schrijvende macro
De eerste versie hieronder toont alleen de naam van ThisWorkbook en de namen van de werkbladen. Ze schrijft niet naar cellen, opent geen bestand en start geen externe actie.
Option Explicit
Public Sub ToonWerkmapstructuur()
Dim werkblad As Worksheet
Dim overzicht As String
overzicht = "Werkmap: " & ThisWorkbook.Name & vbCrLf & vbCrLf
For Each werkblad In ThisWorkbook.Worksheets
overzicht = overzicht & werkblad.Name & vbCrLf
Next werkblad
MsgBox overzicht, vbInformation, "Alleen-lezen controle"
End Sub
Vergelijk de melding met je contract. Als al in deze fase de verkeerde werkmap of werkbladen verschijnen, ga je niet door naar een versie die gegevens kan wijzigen.
Stap 6: plaats en bewaar de code in Excel op desktop
Open de testkopie in de desktopversie van Excel en ga via het tabblad Ontwikkelaars naar Visual Basic. Voeg in de VBE een gewone module toe en plak daar alleen de beoordeelde code.
Bewaar de testkopie vervolgens als .xlsm. Microsoft legt in Save a macro uit dat een macro een macro-enabled bestandsformaat nodig heeft. Het officiële overzicht van Excel-bestandsformaten bevestigt dat .xlsx geen VBA-code bewaart en dat onder meer .xlsm en .xlam macrocode kunnen bevatten. Controleer de bestandsnaam en map voordat je opslaat, zodat de bronkopie onaangeroerd blijft.
Stap 7: compileer en loop de macro stap voor stap door
Kies in de VBE Debug > Compile VBAProject. Los iedere compileerfout op voordat je uitvoert.
Zet daarna een breakpoint op de eerste uitvoerbare regel en gebruik F8 om regel voor regel te lopen. Bekijk in het venster Locals of Watch welke werkmap, welk werkblad en welke waarden de variabelen bevatten. Stop zodra een doel afwijkt van het werkcontract.
Herhaal deze controle voor ieder foutpad en ieder testgeval. Een foutmelding die niet verschijnt is nog geen bewijs dat het resultaat klopt.
Stap 8: voeg wijzigingen in kleine eenheden toe en valideer
Breid de macro pas uit nadat de niet-schrijvende versie het juiste bereik toont. Voeg daarna één schrijvende handeling per keer toe in de testkopie, compileer opnieuw en doorloop dezelfde testset.
Vergelijk na elke run:
- de verwachte en werkelijke rij-aantallen;
- controletotalen voor en na de bewerking;
- onveranderde tabbladen en bereiken die buiten het contract vallen;
- bestandsnaam, bestandstype en opslaglocatie;
- foutgevallen en de toestand waarin de macro stopt.
Werkt een test niet, sluit dan de testkopie zonder haar als nieuwe bron te gebruiken en herstel vanuit de onaangeroerde kopie of een gecontroleerde versie. Leg dat herstelplan vooraf vast. Microsoft waarschuwt bij de Macro Recorder dat macroacties niet standaard ongedaan kunnen worden gemaakt. Een eigen Undo-route moet je vooraf ontwerpen, de oude toestand laten bewaren en expliciet registreren via bijvoorbeeld Application.OnUndo.
Stap 9: onderteken pas na de laatste test
Maak de definitieve distributieversie pas nadat alle acceptatietests slagen. Microsoft adviseert een VBA-project pas te ondertekenen als het getest en klaar voor distributie is; een codewijziging verwijdert de bestaande handtekening totdat het project opnieuw geldig wordt ondertekend.
Een digitale handtekening helpt controleren of het project sinds ondertekening is gewijzigd. Ze bewijst niet dat de logica foutloos is. Volg daarom het beleid voor vertrouwde uitgevers en laat de definitieve .xlsm zo nodig door de beheerder beoordelen.
Macrobeveiliging blijft leidend
Kies nooit Enable all macros. Microsoft noemt die instelling niet aanbevolen en mogelijk gevaarlijk in de uitleg over macro's in- en uitschakelen.
Bestanden uit internet of e-mail kunnen een herkomstmarkering hebben, waardoor Office macro's van internet standaard blokkeert. Instellingen in het Trust Center, organisatiebeleid, vertrouwde locaties en vertrouwde ondertekende uitgevers bepalen vervolgens wat is toegestaan. Vraag je beheerder om de juiste route als een instelling is afgedwongen en leer geen werkwijze aan die het beveiligingsbeleid omzeilt.
Macro's zijn actieve inhoud en kunnen schadelijke code bevatten. Microsoft adviseert in de uitleg over bescherming tegen macrovirussen om inhoud niet in te schakelen tenzij je precies weet wat die doet, ook als het bestand van een bekende afzender lijkt te komen.
Onderteken de definitieve code volgens de instructie Digitally sign your VBA macro project, pas nadat de oplossing is getest. Pas je de code later aan, dan moet je de handtekening en de volledige testset opnieuw controleren.
Office Scripts is een andere route
Office Scripts en VBA verschillen fundamenteel. VBA is gericht op desktopoplossingen en heeft bredere toegang vanuit Excel; Office Scripts is een aparte, cloudgerichte route met een ander runtime- en beveiligingsmodel. Het is daarom geen eenvoudige moderne vervanger van VBA.
Microsoft vermeldt ondersteuning voor Office Scripts in Excel op het web, Windows en Mac, maar niet op iOS. Gebruik en creatie vragen een ondersteunde ondernemings- of onderwijslicentie, en een beheerder kan Office Scripts voor een tenant of gebruikersgroep uitschakelen. VBA werkt juist niet in Excel op het web.
Kies Office Scripts dus niet alleen omdat het nieuwer klinkt. Vergelijk eerst de gewenste Excel-functies, platformen, licentie, beheerinstellingen, integraties en uitvoermomenten. Voor eenvoudige automatisering zonder VBA zijn ook formules, Power Query en andere routes relevant; het overzicht Excel automatiseren zonder VBA helpt die keuze afbakenen.
Codex en Claude Code als extra code-review
Codex en Claude Code kunnen een geëxporteerd .bas-bestand of een andere lokale codekopie doorzoeken en reviewen. Vraag bijvoorbeeld om ongekwalificeerde objectverwijzingen, schrijfacties, externe aanroepen en onvolledige foutpaden te markeren, en beoordeel daarna zelf de diff.
OpenAI beschrijft voor veilig werken met Codex het belang van technische grenzen, sandboxing, netwerkbeleid en expliciete beoordeling van riskantere acties. De installatiegids voor Claude Code laat zien dat het in een lokale projectomgeving met bestanden en shellgereedschap werkt. Houd daarom ook bij code-review de bestandsrechten en de opdracht klein en controleerbaar.
Deze code-assistenten vervangen de Excel-runtime niet. Zij kunnen een codebestand inspecteren, maar ze bewijzen niet welke werkmap, events, add-ins of beleidsinstellingen tijdens uitvoering in Excel actief zijn. Compileer en test de module daarom altijd in de VBE van Excel op desktop. Lees voor de afzonderlijke werkstromen OpenAI Codex gebruiken en Claude Code gebruiken.
Als de macro groter wordt
Leer eerst hoe modules, variabelen, procedures en het objectmodel samenhangen via VBA voor beginners in Excel. Ontwerp daarna foutpaden met de uitleg over VBA-foutafhandeling.
Kun je de bijwerkingen of beveiligingsgrenzen niet betrouwbaar beoordelen, laat de oplossing dan technisch reviewen. De uitleg over een Excel-macro laten maken helpt om eisen, testgevallen en overdracht vooraf vast te leggen.
Controleer ook of VBA werkelijk nodig is. Een formule kan voor een afgebakende berekening beter controleerbaar zijn; begin dan bij AI en Excel-formules. Voor bredere routes tussen Excel, Power BI, Sheets, WordPress en AI kun je het Hulpbij-netwerk gebruiken.
Veelgemaakte fouten
- Meteen om volledige automatisering vragen. Splits de taak eerst op in een contract, een niet-schrijvende inspectie en kleine uitbreidingen.
- De actieve werkmap of selectie vertrouwen. Kwalificeer objecten en controleer dat
ThisWorkbookecht de bedoelde codewerkmap is. - Alleen testen of er geen fout verschijnt. Vergelijk ook bekende uitkomsten, rij-aantallen, controletotalen en onderdelen die onveranderd moeten blijven.
- Een kopie als volledige beveiliging zien. Een werkmapkopie beschermt brondata, maar isoleert geen bestandssysteem, e-mailclient, netwerk of andere applicatie.
- Macrobeleid omzeilen. Houd Trust Center en organisatiebeleid actief en laat een blokkade door de juiste beheerroute beoordelen.
- Te vroeg ondertekenen. Test de definitieve code eerst en herhaal de controle na iedere wijziging die de handtekening beïnvloedt.
- Als
.xlsxopslaan. Gebruik.xlsmals de VBA-code in de werkmap behouden moet blijven. - Vertrouwen op AI als laatste reviewer. Controleer objecten, methoden en gedrag met officiële documentatie en de Excel-runtime.
Veelgestelde vragen
Kan AI VBA-code schrijven voor Excel?
AI kan een eerste VBA-concept voorstellen op basis van je beschrijving, maar garandeert niet dat de code correct, veilig of geschikt voor jouw werkmap is. Controleer de gebruikte objecten, bereiken en acties, compileer de code en test haar met bekende gevallen.
Heb ik VBA-kennis nodig om AI-gegenereerde macro’s te gebruiken?
Je hebt minimaal voldoende kennis nodig om variabelen, werkmappen, werkbladen, bereiken, foutafhandeling en de gevolgen van de code te beoordelen. Laat macro’s met bestands-, e-mail-, netwerk- of financiële gevolgen door een deskundige controleren.
Is AI-gegenereerde VBA-code veilig?
Niet automatisch. VBA kan werkmappen wijzigen, bestanden verwijderen of overschrijven, andere programma’s aansturen en gegevens versturen. Houd macrobeveiliging actief, beoordeel iedere externe actie en test alleen in een herstelbare omgeving.
In welk Excel-bestandsformaat moet ik een macro opslaan?
Voor een gewone werkmap met VBA is .xlsm het gebruikelijke formaat. Ook andere macrogeschikte formaten bestaan, zoals .xlsb en .xlam; een .xlsx-bestand kan geen VBA-macrocode opslaan.
Waarom blokkeert Excel mijn macro?
De macro kan worden tegengehouden door Trust Center, organisatiebeleid, een niet-vertrouwde uitgever of doordat het bestand van internet of uit een e-mailbijlage komt. Schakel niet alle macro’s in en verwijder een blokkering alleen nadat je herkomst, code en beleid hebt gecontroleerd.
Maakt een digitale handtekening een VBA-macro veilig?
Nee. Een handtekening helpt vaststellen dat het VBA-project sinds ondertekening niet is gewijzigd en kan onderdeel zijn van vertrouwde-uitgeverbeleid. Zij bewijst niet dat de code functioneel juist of onschadelijk is; test eerst en onderteken pas daarna.
Kan ik de wijzigingen van een macro met Ctrl+Z terugdraaien?
Gewoonlijk niet. Macroacties kunnen niet standaard worden teruggedraaid; een aangepaste Undo-procedure moet vooraf zijn ontworpen en de oude toestand bewaren. Werk daarom met een kopie of versiegeschiedenis en leg vast hoe je een bekende versie herstelt.
Officiële bronnen
- Microsoft Learn: Getting started with VBA in Office
- Microsoft Learn: Excel object model overview
- Microsoft Support: Enable or disable macros in Microsoft 365 files
- Microsoft Learn: Macros from the internet are blocked by default in Office
- Microsoft Support: Protect yourself from macro viruses
- Microsoft Support: Save a macro
- Microsoft Support: File formats that are supported in Excel
- Microsoft Support: Automate tasks with the Macro Recorder
- Microsoft Learn: Application.OnUndo method
- Microsoft Support: Digitally sign your VBA macro project
- Microsoft Learn: Differences between Office Scripts and VBA macros
- OpenAI Help: ChatGPT accuracy and limitations
- OpenAI: Running Codex safely
- Anthropic: Claude Code getting started
Gerelateerde artikelen
Alles bekijkenAI en Excel
ChatGPT voor Excel: add-in of bestandsanalyse (2026)
Gebruik ChatGPT veilig met Excel via de officiële add-in, eventueel met Codex, of analyseer een geüploade bestandskopie.
ChatGPT
Code schrijven met ChatGPT en Codex: veilige werkwijze (2026)
Gebruik ChatGPT voor gerichte codehulp en Codex voor werk in een codebase, met een praktisch stappenplan voor context, tests, beveiliging en review.
Copilot
Copilot in Excel gebruiken: plannen, bewerken en controleren (2026)
Gebruik Copilot in Excel via chat-, plan- of bewerkmodus en controleer formules, grafieken, draaitabellen en wijzigingen met een veilig stappenplan.
Hulp nodig met jouw situatie?
Stuur kort wat je wilt bereiken, welke AI-tool je gebruikt en waar je vastloopt. Je krijgt dezelfde dag antwoord.