Questo tutorial ti insegnerà come chiamare una sottoprocedura dall'interno di un'altra sottoprocedura in VBA
È molto utile scrivere codice che può essere utilizzato ripetutamente e chiamato da più sottoprocedure nel progetto: può risparmiare un'enorme quantità di tempo e rendere il codice VBA molto più efficiente.
Esecuzione di una procedura secondaria da un'altra procedura secondaria
Considera le 3 sottoprocedure di seguito:
1234 | Sottotest Routine()EseguiRoutine1EseguiRoutine2Fine sottotitolo |
123 | Sub RunRoutine1()MsgBox "Buongiorno"Fine sottotitolo |
123 | Sub RunRoutine2()MsgBox "La data odierna è " & Formato(Data, "mm/gg/aaaa")Fine sottotitolo |
Se eseguiamo la procedura secondaria - TestRoutine - chiamerà RunRoutine1 e RunRoutine2 e verranno visualizzate 2 finestre di messaggio.

Non c'è limite al numero di Sottoprocedure che è possibile chiamare da un'altra Sottoprocedura.
Utilizzo dell'estratto conto
Puoi anche usare l'istruzione di chiamata davanti al nome della procedura, per rendere il tuo codice più facile da leggere. Tuttavia, non ha alcun effetto sul modo in cui il codice viene eseguito o archiviato.
1234 | Sottotest Routine()Chiama RunRoutine1Chiama RunRoutine2Fine sottotitolo |

Chiamare un sottotitolo con argomenti
È anche possibile chiamare un sub con argomenti
1234 | Sottotest Routine()EseguiRoutine1 ("Melanie")RunRoutine2 ("Buona giornata")Fine sottotitolo |
123 | Sub RunRoutine1(strName as String)MsgBox "Buongiorno " & " & strNameFine sottotitolo |
123 | Sub RunRoutine2(strMessage as String )MsgBox "La data odierna è " & Format(Date, "mm/dd/yyyy") & VbCrLf & strMessageFine sottotitolo |

Chiamare un sottotitolo con argomenti con nome
Se dai un nome ai tuoi argomenti, non devi passarli nello stesso ordine alle tue routine secondarie.
123 | Sottotest Routine()RunRoutine1 strGreeting:="Come stai?", strName:="Melanie"Fine sottotitolo |
123 | Sub RunRoutine1(strName as String, strGreeting as stringMsgBox "Buongiorno" & " & strName & vbCrLf & strGreetingFine sottotitolo |
