Quando si sviluppa una macro per l’utilizzo da parte di altri, è possibile aggiungere un metodo per consentire all’utente di uscire dalla macro prima che termini e mantenere il controllo di ciò che fa la macro. CTRL + INTERR interromperà una macro, ma non verrà chiusa correttamente, poiché consentirà all’utente di visualizzare il codice nell’editor VBA.
Esistono diversi modi per affrontare questo problema. Il primo è creare un prompt “vuoi uscire” nella macro, quindi fare in modo che la macro visualizzi periodicamente il prompt. Ad esempio, considera il codice seguente:
Do ...
'il tuo codice qui
Counter = Counter + 1
If Counter Mod 25 = 0 Then
If MsgBox("Vuoi uscire?", vbYesNo) = vbYes Then End
End If
Loop
La costruzione della macro si basa sulla premessa che si hanno una serie di passaggi che si desidera ripetere più e più volte, attraverso l’uso di una struttura Do … Loop. Ogni volta che si esegue il ciclo, il valore di Counter viene incrementato. Ogni 25 volte nel ciclo, il messaggio “Vuoi uscire?” viene visualizzato e l’utente ha la possibilità di uscire.
Questo approccio è facile da implementare e può funzionare abbastanza bene per alcuni scopi. Il più grande svantaggio di questo approccio, tuttavia, è che non consente l’immediatezza: l’utente deve attendere per uscire dalla macro finché non si sono verificate almeno 25 iterazioni.
Un altro approccio consiste nel “nascondere” il codice VBA e applicarvi una password. Puoi farlo seguendo questi passaggi dall’editor VBA:
- Scegli l’opzione Proprietà di VBAProject dal menu Strumenti. L’editor visualizza la finestra di dialogo Proprietà progetto.
- Assicurati che la scheda Protezione sia visualizzata.
Questo contenuto è riservato agli abbonati
Solo gli utenti con Abbonamento VBA Coder oppure Ultimate possono visionarlo.
Se sei già abbonato Accedi per sbloccare il contenuto!
In caso contrario abbonati qui! L'abbonamento è conveniente.
E puoi interromperlo in ogni momento e in completa autonomia.
(puoi renderti conto di quanti siano i contenuti riservati
raggiungendo questa pagina)