Pular para o conteúdo

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 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

A função auxiliar CallXLSPadlockVBA recebe dois parâmetros:

  • ID: O nome do Sub ou Function compilado que você deseja invocar.
  • Param1: Um parâmetro opcional que você deseja passar para o código compilado.

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 Sub

Depois 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 Sub

Aqui, 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.