- •Глава 19. Инструментальные средства пользователя в среде microsoft office
- •19.1. Автоматизация работы пользователя в среде microsoft office
- •Глава 19. Инструментальные средства пользователя в среде microsoft office
- •19.1. Автоматизация работы пользователя в среде microsoft office
- •672 Глава 19. Инструментальные средства пользователя в среде microsoft office
- •19.1. Автоматизация работы пользователя в среде microsoft office
- •Глава 19. Инструментальные средства пользователя в среде microsoft office
- •19.1. Автоматизация работы пользователя в среде microsoft office
- •Глава 19. Инструментальные средства пользователя в среде microsoft office
- •678 Глава 19. Инструментальные средства пользователя в среде microsoft office
- •19.1. Автоматизация работы пользователя в среде microsoft office
- •Глава 19. Инструментальные средства пользователя в среде microsoft office
- •19.1. Автоматизация работы пользователя в среде microsoft office
- •Глава 19. Инструментальные средства пользователя в среде microsoft office
- •19.1. Автоматизация работы пользователя в среде microsoft office
- •Глава 19. Инструментальные средства пользователя в среде microsoft office
- •19.1. Автоматизация работы пользователя в среде microsoft office
- •Глава 19. Инструментальные средства пользователя в среде microsoft office
- •19.1. Автоматизация работы пользователя в среде microsoft office
- •688 Глава 19. Инструментальные средства пользователя в среде microsoft office
- •19.2. Создание приложений на языке visual basic for applications
- •690 Глава 19. Инструментальные средства пользователя в среде microsoft office
- •19.2. Создание приложений на языке visual basic for applications
- •Глава 19. Инструментальные средства пользователя в среде microsoft office
- •Глава 19. Инструментальные средства пользователя в среде microsoft office
- •19.2. Создание приложений на языке visual basic for applications
- •Глава 19. Инструментальные средства пользователя в среде microsoft office
- •19.2. Создание приложений на языке visual basic for applications
- •Глава 19. Инструментальные средства пользователя в среде microsoft office
- •Глава 19. Инструментальные средства пользователя в среде microsoft office
- •Глава 19. Инструментальные средства пользователя в среде microsoft office
- •19.2. Создание приложений на языке visual basic for applications
- •Глава 19. Инструментальные средства пользователя в среде microsoft office
- •19.2. Создание приложений на языке visual basic for applications
- •Глава 19. Инструментальные средства пользователя в среде microsoft office
- •7 08 Глава 19. Инструментальные средства пользователя в среде microsoft office
- •Глава 19. Инструментальные средства пользователя в среде microsoft office
- •19.2. Создание приложений на языке visual basic for applications
- •712 Глава 19. Инструментальные средства пользователя в среде microsoft office
- •19.2. Создание приложений на языке visual basic for applications
- •7 14 Глава 19. Инструментальные средства пользователя в среде microsoft office
- •19.2. Создание приложений на языке visual basic for applications
- •7 16 Глава 19. Инструментальные средства пользователя в среде microsoft office
- •19.2. Создание приложений на языке visual basic for applications
- •718 Глава 19. Инструментальные средства пользователя в среде microsoft office
- •19.2. Создание приложений на языке visual basic for applications
- •720 Глава 19. Инструментальные средства пользователя в среде microsoft office
- •19.3. Реляционные языки манипулирования данными
- •722 Глава 19. Инструментальные средства пользователя в среде microsoft office
- •19.3. Реляционные языки манипулирования данными
- •724 Глава 19. Инструментальные средства пользователя в среде microsoft office
- •19.3. Реляционные языки манипулирования данными
- •19.3. Реляционные языки манипулирования данными
- •728 Глава 19. Инструментальные средства пользователя в среде microsoft office
- •19.3. Реляционные языки манипулирования данными
- •Глава 19. Инструментальные средства пользователя в среде microsoft office
- •19.3. Реляционные языки манипулирования данными
- •732 Глава 19. Инструментальные средства пользователя в среде microsoft office
- •19.3. Реляционные языки манипулирования данными 733
- •734 Глава 19. Инструментальные средства пользователя в среде microsoft office
- •19.3. Реляционные языки манипулирования данными
- •736 Глава 19. Инструментальные средства пользователя в среде microsoft office
- •19.3. Реляционные языки манипулирования данными
- •Глава 19. Инструментальные средства пользователя в среде microsoft office
- •19.3. Реляционные языки манипулирования данными
- •Глава 19. Инструментальные средства пользователя в среде microsoft office
- •Глава 19. Инструментальные средства пользователя в среде microsoft office
Глава 19. Инструментальные средства пользователя в среде microsoft office
Объявление аргументов в заголовке процедуры имеет стандартный вид: Sub ProcJB (Vail As Single; Val2 As Date;...)
Через выбранный разделитель списков (в зависимости от настройки Windows — запятая или точка с запятой) следуют аргументы с указанием имени и типа значения.
Если аргумент необязательный, т.е. может не задаваться при вызове процедуры, указывается ключевое слово Optional.
Пример 19.18. Процедура вычисления площади прямоугольника по двум сторонам
I
Текст программы |
Комментарий |
Sub SquarPr (L As Single; H As Single; S As Single; Optional F) If IsMissing( F) Then F=100 S=L*H End Sub |
Объявление процедуры SquarPr и ее аргументов Встроенная функция VBA — IsMissing проверяет наличие аргумента F, если F не задано, по умолчанию F присваивается значение 100 (F имеет тип Variant) Вычисление площади прямоугольника Конец процедуры |
Вызов такой процедуры выполняется различным образом.
1-й вариант — непосредственное задание значений аргументов при вызове процедуры
Текст программы |
Комментарий |
Sub Proc_A () Dim Sq as Single SquarPr 12; 23; Sq End Sub |
Вызывающая процедура Вызов процедуры с передачей значений длин сторон прямоугольника в явном виде, результат вычисления будет присвоен переменной Sq Конец процедуры |
2-й вариант — через имена переменных, которым присвоены значения
Текст программы |
Комментарий _ |
Sub Proc_A () |
Вызывающая процедура |
Dim Sq as Single Dim LL as Single Dim HH as Single |
Объявление переменных ПЛОЩАДЬ ДЛИНА ВЫСОТА |
LL=12 HH=23 |
Присвоение значений переменным |
SquarPr LL HH Sq |
Вызов процедуры с передачей значений длин сторон прямоугольника в явном виде, результат вычисления будет присвоен переменной Sq |
End Sub |
Конец процедуры |
19.2. СОЗДАНИЕ ПРИЛОЖЕНИИ НА ЯЗЫКЕ VISUAL BASIC FOR APPLICATIONS
701
3-й вариант — использование списка поименованных аргументов при вызове процедуры
Текст программы |
Комментарий |
Sub Proc_A () |
Вызывающая процедура |
|
Объявление переменных |
Dim Sq as Single |
ПЛОЩАДЬ |
Dim LL as Single |
ДЛИНА |
Dim HH as Single |
ВЫСОТА |
LL=12 |
Присвоение значений переменным |
HH=23 |
|
SquarPr L:=LL; H:=HH; S:=Sq |
Вызов процедуры с указанием соответ- |
|
ствия имен аргументов вызываемой |
|
процедуры и имен переменных |
|
вызывающей процедуры, которые |
|
разделяются в строке знаком: |
End Sub |
Конец процедуры |
При завершении работы вызываемой процедуры и передаче управления вызывающей процедуре происходит потеря значений переменных, объявленных в вызываемой процедуре.
Для предотвращения этого сохраняемые переменные следует объявлять оператором:
Static <var> As <type>
Обычно при вызове процедуры происходит передача адреса, по которому находится значение (адрес соответствует имени переменной). Процедура может изменить значение аргумента. Для блокировки изменения значения аргумента следует передача величин значением. Для этого выполняется либо модификация заголовка процедуры, либо передача аргументов в виде формулы.
Для модификации заголовка процедуры выполняется указание ключевого слова By Val перед именами аргументов, значение которых не изменится внутри процедуры.
Пример 19.19.
Sub SquarPr (By Val L As Single; By Val H As Single; S As Single)
S=L*H
L=10
H=20
End Sub
Для преобразования аргумента в виде формулы при вызове процедуры имя переменной заключается в круглые скобки.
Пример 19.20.
Текст программы |
Комментарий |
Sub Proc_A () |
Вызывающая процедура |
|
Объявление переменных |
Dim Sq as Single |
ПЛОЩАДЬ |
Dim LL as Single |
ДЛИНА |
Dim HH as Single |
ВЫСОТА |
LL=12 |
Присвоение значений переменным |
HH=23 |
|
SquarPr L:=(LL); H:=(HH); S:=Sq |
Преобразование аргумента в формулу |
End Sub |
Конец процедуры |
702