Open een Excel bestand zonder macro's uit te voeren
- 04/04/2021
Inleiding
In Excel VBA gebeurt het heel regelmatig dat we bestanden openen om diens inhoud te manipuleren. Gewoonlijk bevatten die bronbestanden zelf geen macro's. Maar nog recentelijk werd ik geconfronteerd met een situatie waarbij het bronbestand zelf ook macro's bevatte. Dit is op zich nog geen reden om de code te wijzigen. Het wordt echter anders wanneer VBA-code in het bronbestand automatisch uitgevoerd wordt bij het openen (Workbook_Open of gelijkaardige gebeurtenissen). Deze code wordt uitgevoerd en dat is niet noodzakelijk gewenst door de ontwikkelaar.
Het blijkt nu dat VBA een methode kent om de macro's in een bronbestand uit te schakelen:
'Dit is het standaardgedrag waarbij elke keer gevraagd wordt of macro's ingeschakeld worden of niet: Application.AutomationSecurity = msoAutomationSecurityByUI 'Deze optie schakelt macro's in nieuw geopende bestanden uit: Application.AutomationSecurity = msoAutomationSecurityForceDisable 'Deze optie schakelt macro's in nieuw geopende bestanden in: Application.AutomationSecurity = msoAutomationSecurityLow
Bijgevolg, je zet dus tijdelijk de macro security lager en herzet nadien:
Dim previousSecurity As Long previousSecurity = Application.AutomationSecurity If previousSecurity <> msoAutomationSecurityForceDisable Then Application.AutomationSecurity = msoAutomationSecurityForceDisable End If ' ' Jouw code, waaronder het openen van bronbestanden met Workbook_Open gebeurtenissen ' If Application.AutomationSecurity <> previousSecurity Then Application.AutomationSecurity = previousSecurity End If
Dat was het alweer !