Ga naar inhoud

Gecompileerde VBA-code tijdens runtime aanroepen

Om uw gecompileerde VBA-code uit te voeren, moet u deze vanuit de reguliere VBA-code van uw werkmap aanroepen met een hulpfunctie.

Open eerst de Visual Basic Editor en plak de volgende hulpfunctie in een module in uw werkmap:

' This function lets you call VBA macros compiled with XLS Padlock
Public Function CallXLSPadlockVBA(ID As String, Param1 As Variant) As Variant
Dim XLSPadlock As Object
On Error Resume Next
Set XLSPadlock = Application.COMAddIns("GXLSForm.GXLSFormula").Object
CallXLSPadlockVBA = XLSPadlock.PLEvalVBA(ID, Param1)
End Function

De hulpfunctie CallXLSPadlockVBA neemt twee parameters aan:

  • ID: De naam van de gecompileerde Sub of Function die u wilt aanroepen.
  • Param1: Een optionele parameter die u aan de gecompileerde code wilt doorgeven.

Stel dat uw oorspronkelijke VBA-module de volgende code bevat:

Sub Calculate()
Range("A4") = "Tom"
Range("B4") = 5000
Range("C4") = Range("B4") * 0.5
Range("D4") = Range("C4") + Range("B4")
End Sub

Nadat u deze code naar de VBA Compiler hebt verplaatst, vervangt u de oorspronkelijke sub door een aanroep van de hulpfunctie:

Sub Calculate()
Dim res As Variant
res = CallXLSPadlockVBA("Calculate", "")
End Sub

Hier geven we de naam van de beveiligde sub, Calculate, op en geven we een lege tekenreeks door voor de tweede parameter, omdat deze in dit geval niet wordt gebruikt. De variabele res bevat het resultaat van de aanroep, wat vooral nuttig is wanneer de aangeroepen code een Function is die een waarde retourneert.

👉 Zie ook: Leer hoe u meer dan één parameter aan uw gecompileerde code doorgeeft.