Invocar código VBA compilado en tiempo de ejecución
Para ejecutar su código VBA compilado, debe llamarlo desde el código VBA normal de su libro mediante una función auxiliar.
Primero, abra el Editor de Visual Basic y pegue la siguiente función auxiliar en un módulo de su libro:
' This function lets you call VBA macros compiled with XLS PadlockPublic 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 FunctionLa función auxiliar CallXLSPadlockVBA toma dos parámetros:
- ID: El nombre del
SuboFunctioncompilado que desea invocar. - Param1: Un parámetro opcional que desea pasar al código compilado.
Ejemplo
Section titled “Ejemplo”Imagine que su módulo VBA original contiene el siguiente código:
Sub Calculate() Range("A4") = "Tom" Range("B4") = 5000 Range("C4") = Range("B4") * 0.5 Range("D4") = Range("C4") + Range("B4")End SubDespués de trasladar este código al VBA Compiler, reemplazaría el sub original por una llamada a la función auxiliar:
Sub Calculate() Dim res As Variant res = CallXLSPadlockVBA("Calculate", "")End SubAquí indicamos el nombre del sub protegido, Calculate, y pasamos una cadena vacía como segundo parámetro porque en este caso no se utiliza. La variable res contendrá el resultado de la llamada, lo cual resulta útil sobre todo si el código invocado es una Function que devuelve un valor.
👉 Vea también: Aprenda a pasar más de un parámetro a su código compilado.