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