Цей підручник навчить вас, як викликати підпроцедуру з іншої підпроцедури у VBA
Дуже корисно писати код, який можна використовувати багаторазово і викликати з кількох підпроцедур у вашому проекті - це може заощадити величезну кількість часу та робить код VBA набагато ефективнішим.
Запуск підпроцедури з іншої підпроцедури
Розглянемо три підпроцедури нижче:
1234 | Sub TestRoutine ()RunRoutine1RunRoutine2End Sub |
123 | Sub RunRoutine1 ()Повідомлення "Добрий ранок"End Sub |
123 | Sub RunRoutine2 ()MsgBox "Сьогоднішня дата" та формат (дата, "мм/дд/рррр")End Sub |
Якщо ми запустимо підпроцедуру - TestRoutine - вона викликатиме RunRoutine1 і RunRoutine2, і з’являться 2 вікна повідомлень.

Кількість підпроцедур, які можна викликати з іншої підпроцедури, не обмежена.
Використання заяви про дзвінок
Ви також можете використовувати оператор виклику перед назвою процедури, щоб полегшити читання коду. Однак це ніяк не впливає на те, як код запускається або зберігається.
1234 | Sub TestRoutine ()Виклик RunRoutine1Викличте RunRoutine2End Sub |

Виклик підрозділу з аргументами
Також можна викликати суб з аргументами
1234 | Sub TestRoutine ()RunRoutine1 ("Мелані")RunRoutine2 ("Гарного дня")End Sub |
123 | Sub RunRoutine1 (strName як рядок)MsgBox "Доброго ранку" & "& strNameEnd Sub |
123 | Sub RunRoutine2 (strMessage як рядок)MsgBox "Сьогоднішня дата" & Формат (Дата, "мм/дд/рррр") & VbCrLf & strMessageEnd Sub |

Виклик підрозділу з іменованими аргументами
Якщо ви називаєте свої аргументи, вам не потрібно передавати їх у тому ж порядку до ваших підпрограм.
123 | Sub TestRoutine ()RunRoutine1 strGreeting: = "Як справи?", StrName: = "Мелані"End Sub |
123 | Sub RunRoutine1 (strName як String, strGreeting як рядокMsgBox "Доброго ранку" & "& strName & vbCrLf & strGreetingEnd Sub |
