Salta ai contenuti

Invocazione del codice VBA compilato durante l'esecuzione

Per eseguire il codice VBA compilato, è necessario richiamarlo dal codice VBA ordinario della cartella di lavoro tramite una funzione di supporto.

Per prima cosa, aprire il Visual Basic Editor e incollare la seguente funzione di supporto in un modulo della cartella di lavoro:

' 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

La funzione di supporto CallXLSPadlockVBA accetta due parametri:

  • ID: il nome del Sub o della Function compilata che si desidera invocare.
  • Param1: un parametro opzionale che si desidera passare al codice compilato.

Si immagini che il modulo VBA originale contenga il seguente codice:

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

Dopo aver spostato questo codice nel VBA Compiler, si sostituirebbe il sub originale con una chiamata alla funzione di supporto:

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

In questo caso, si fornisce il nome del sub protetto, Calculate, e si passa una stringa vuota per il secondo parametro, poiché non viene utilizzato. La variabile res conterrà il risultato della chiamata, il che è utile soprattutto se il codice invocato è una Function che restituisce un valore.

👉 Vedere anche: scoprire come passare più di un parametro al codice compilato.