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 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 funzione di supporto CallXLSPadlockVBA accetta due parametri:
- ID: il nome del
Subo dellaFunctioncompilata che si desidera invocare. - Param1: un parametro opzionale che si desidera passare al codice compilato.
Esempio
Section titled “Esempio”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 SubDopo 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 SubIn 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.