Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб_№13_VBA.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
919 Кб
Скачать
☆
    1. Процедуры и функции

В Visual Basic для приложений имеется два типа подпрограмм − функции и процедуры. Процедура – это программа, которая может быть вызвана из другой программы и при этом получить для дальнейшей обработки определенную информацию. Функция е – это процедура, которая не только получает из другой программы какую-нибудь информацию, но и возвращает той программе какое-нибудь значение, которое может быть ею в дальнейшем использовано.

Инструкция Sub используется для описания имени, аргументов и исходного текста программы, составляющего тело процедуры Sub. В VBA любая процедура, получающая данные из другой программы, имеет следующий формат:

[Public | Private] [Static] Sub имя подпрограммы ([<аргументы>])

[ <инструкции тела подпрограммы> ]

[Exit Sub]

[ <инструкции тела подпрограммы> ]

End Sub

где

<аргументы> — это {[Optional][ByVal | ByRef][ParamArray]

имя аргументa [As тип данных]},...

Формат функции:

[Public | Private] [Static] Function имя функции

([<аргументы>]) [As тип данных]

[<инструкции-тела-функции>]

[имя функции = <выражение>]

[Exit Function]

[<инструкции тела функции>]

[имя функции = <выражение>]

End Function

где

<аргументы> — это {[Optional][ByVal | ByRef][ParamArray]

имя аргументa [As тип данных] }, ...,

Пример:

Function GetUserName () As String

GetUserName = InputBox ("Введите имя пользователя",

"Имя пользователя", "Александр Иванов")

End Function

Вызов процедуры:

Sub Main()

Dim a As Integer

a = 1

uvelich a, 3

MsgBox a

End Sub

Sub uvelich(b As Integer, c As Integer)

b = b + c

End Sub

В этом примере из процедуры Main вызывается процедура uvelich, которой передаются два параметра – a (равное 1) и второй – число 3. Процедура uvelich увеличивает первую переданную переменную на значение второго переданного числа, а затем Main отображает результат вычислений.

Переменные могут передаваться в процедуру двумя способами – только для чтения или / и для изменения. По умолчанию переменные могут в функции изменяться. Если же не нужно, чтобы переменная в процедуре менялась, то перед именем этой переменной в заголовке процедуры следует поместить инструкцию ByVal.

К примеру, если бы заголовок процедуры uvelich имел вид

Sub uvelich(ByVal b As Integer, c As Integer),

то никакого увеличения переменной "a" не произошло бы, и программа отобразила бы в качестве результата число 1. Однако в самой процедуре uvelich соответствующая переменная увеличилась бы на 3, и если бы ее последней командой было бы MsgBox b, то она бы отобразила значение 4.

Перед заголовком функции или процедуры можно поставить инструкции Public или Private. Функция или процедура, объявленная как Public, может вызываться и из других модулей, в то время как функция или процедура, объявленная как Private, доступна только из данного модуля. По умолчанию все функции и процедуры считаются объявленными как Public (а переменные, как нетрудно заметить – объявленные как Private).

Главная процедура – собственно программа – не может иметь параметров (в ее заголовке должны стоять пустые скобки).

Пример:

Sub Main()

Dim Greeting As String

Greeting = "Здравствуйте, " + GetUserName

‘Вывод строки приветствия

MsgBox Greeting

End Sub

    1. Msgbox, Inputbox

При помощи этих двух подпрограмм можно вызывать диалоговые окна на экран − это такие окна, которые о чем-то уведомляют пользователя или о чем-то спрашивают.

Тогда пользователь "принужден" на них отреагировать, т. к. пока он этого не сделает, не сможет использовать программу дальше.

С помощью команды MsgBox получают окно, в котором просто стоит текст, и в котором можно видеть некоторые иконки. Пользователь должен ответить, чтобы продолжить дальше.

MsgBox "Не надо паники!", 0,"ПРИМЕР..."

Надпись для заголовка диалогового окна − "ПРИМЕР...".

0 − эта часть кода определяет для компьютера, какая иконка и сколько кнопок должно быть показано в диалоговом окне.

Значения аргументов:

0 − показать только Да (это будет сделано также тогда, когда там не будет ничего вообще).

1 − показать Да и Отмена.

2 − показать Отмена, Повторить и Игнорировать.

3 − показать Да, Нет и Отмена.

4 − показать Дa и Нет.

5 − показать Повторить и Отмена.

InputBox применяют, если от пользователя требуется ввести информацию:

FirstName = InputBox("Введите ваше имя!", "Ввод имени")

Процедура выдаст диалоговое окно с текстом, двумя кнопками (Да и Отмена) и полем для ввода. То, что введет пользователь, будет стоять в переменной FirstName. Если будет нажата кнопка Отмена, тогда переменная FirstName окажется пустой. Как и у команды MsgBox имеется возможность задать заголовок окна – Ввод имени.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]