Open een Excel bestand zonder macro's uit te voeren

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 !




Homepage

Rubriek onderdelen

Over Wim

Wim Gielis is Business Intelligence consultant en Excel expert

Andere links