Invocando código VBA compilado em tempo de execução
Para executar seu código VBA compilado, você deve chamá-lo a partir do código VBA normal da sua planilha usando uma função auxiliar.
Primeiro, abra o Visual Basic Editor e cole a seguinte função auxiliar em um módulo da sua planilha:
' 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 FunctionA função auxiliar CallXLSPadlockVBA recebe dois parâmetros:
- ID: O nome do
SubouFunctioncompilado que você deseja invocar. - Param1: Um parâmetro opcional que você deseja passar para o código compilado.
Exemplo
Section titled “Exemplo”Imagine que seu módulo VBA original contém o seguinte código:
Sub Calculate() Range("A4") = "Tom" Range("B4") = 5000 Range("C4") = Range("B4") * 0.5 Range("D4") = Range("C4") + Range("B4")End SubDepois de mover este código para o VBA Compiler, você substituiria o sub original por uma chamada à função auxiliar:
Sub Calculate() Dim res As Variant res = CallXLSPadlockVBA("Calculate", "")End SubAqui, fornecemos o nome do sub protegido, Calculate, e passamos uma string vazia como segundo parâmetro porque ele não é utilizado neste caso. A variável res conterá o resultado da chamada, o que é útil principalmente quando o código invocado é uma Function que retorna um valor.
👉 Veja também: Aprenda a passar mais de um parâmetro para o seu código compilado.