Для чого потрібна процедура Sub? h2>
Якщо
Ви вже читали моє пояснення процедури Function, то Ви зрозумієте Sub ще швидше!
Загалом так, Sub це те ж саме, що й Function, тільки вона не повертає
значення, а виробляє будь-яка дія. Наприклад виведення на екран повідомлення
або маніпулювання декількома властивостями. Наприклад MsgBox. Це теж
підпрограма. Наприклад: p>
Msgbox
( "Привіт!",, "Тема") p>
Msgbox
- Це ім'я підпрограми. А "Привіт!" і "Тема" це
передаються значення. Тобто підпрограма Msgbox виводить на екран вікно з текстом
"Привіт!" і заголовком "Заголовок". p>
Тепер
припустимо, що Вам потрібно, щоб ваша програма вирізала з переданих строк
всі задані символи (візьмемо мій приклад з "Практики"): p>
Sub
Main () p>
оголошуємо
змінну для рядка p>
Dim
Stroka As String p>
оголошуємо
змінну для символу, який треба вирізати p>
Dim
Symbol As String p>
оголошуємо
змінну для місця знаходження символу p>
Dim
ReturnNumber As Integer p>
отримуємо
рядок, за замовчуванням стоїть рядок p>
"There is nothing
impossible! " p>
Stroka = InputBox ( "Введіть рядок",, "There is nothing
impossible! ") p>
отримуємо
символ, за замовчуванням стоїть символ "i" p>
Symbol
= InputBox ( "Введіть символ",, "i") p>
запускаємо
цикл p>
Do
p>
за допомогою InStr отримуємо місце розташування
шуканого символу p>
якщо воно дорівнює нулю, залишаємо цикл p>
ReturnNumber = InStr (1, Stroka, Symbol): If _ p>
ReturnNumber = 0 Then Exit Do p>
рядку присвоюються всі символи ліворуч до
шуканого і праворуч p>
Stroka = Left (Stroka, ReturnNumber - 1) + Right (Stroka, _ p>
Len (Stroka) - ReturnNumber) p>
Loop p>
MsgBox Stroka виводимо відредаговану рядок на екран p>
End
Sub p>
А
тепер представте, що ці рядки Вам потрібні більше одного разу і в різних місцях
! p>
Не
простіше написати підпрограму, яка
це робить і потім просто викликати її? Так, пишемо (поза модуля): p>
Public Sub RemSym (Stroka, Symbol) p>
Do p>
ReturnNumber = InStr (1, Stroka,
Symbol): If _ p>
ReturnNumber = 0 Then Exit Do p>
Stroka = Left (Stroka, ReturnNumber - 1)
+ Right _ p>
(Stroka, Len (Stroka) - ReturnNumber) p>
Loop p>
MsgBox Stroka p>
End
Sub p>
Ось
так, а тепер можна просто викликати цю підпрограму і передати значення рядка
або символ: p>
RemSym
Stroka, Symbol p>
і
з будь-якого місця! p>
Список літератури h2>
Для
підготовки даної роботи були використані матеріали з сайту http://visualprogs.narod.ru/
p>