- •Билет №1
- •Билет №2 Понятие объекта, свойств, методов и событий, присущих объекту. Синтаксис языка для работы со свойствами и методами. Примеры.
- •Вопрос №3
- •Вопрос № 4
- •Билет № 5 Константы и переменные. Описание и инициализация. Область видимости переменных. Примеры.
- •Вопрос №6 Операции. Приоритет операций. Примеры.
- •Вопрос 7. Типы данных. Примеры
- •Dim r As Byte
- •8.Управляющие конструкции If…Then и Select…Case. Примеры
- •9) Операторы цикла For…Next и Do…Loop. Особенности использования. Примеры
- •Функции работы со строками. Примеры.
- •Следующие три функции позволяют работать с массивом строк
- •И последние две функции генерируют строки символов
- •Функции работы с датами. Примеры.
- •12. Работа с объектом Range. Выделение диапазона. Свойства CurrentRegion и Selection. Примеры.
- •13)Работа с объектом Range.
- •14)Работа с объектом Range.
- •15) Работа с объектом Range.
- •4) Column Возвращает номер первого столбца в первой области, в указанном диапазоне. Свойство только для чтения.
- •5) Columns в отличие от предыдущего свойства, Columns возвращает не простое число, а объект Range, представляющий собой один столбец из всего диапазона.
- •6) Comment Возвращает объект Comment для Range. В данном случае Range должен определять одну ячейку.
- •Вопрос 16
- •Билет № 17 Редактор vba. Назначение. Окно редактора.
- •Вопрос 18.
- •19 Вопрос. Пользовательские формы.
- •Билет №21
- •Вопрос 22
- •End With
- •Вопрос 23
Вопрос № 4
Процедуры – подпрограммы и процедуры – функции. Отличие подпрограмм от функций. Создание и использование. Процедуры обработки событий. Примеры.
Процедуры-функции
Процедура-функция - это подпрограмма, которая не только получает какую-то информацию, но и возвращает какое-то значение. Вызов функции является выражением и может использоваться в других выражениях.
Общий вид функции:
[Public| Private] [Static] Function ИмяФункции (СписокАргументов) [As тип]
Инструкции
ИмяФункции=Выражение
Exit Function
Инструкции
ИмяФункции=Выражение
End Function
Параметры:
Public Необязательный. Указывает, что процедура Function доступна для всех других процедур во всех модулях. При использовании в личном модуле (содержащем инструкцию Option Private) такая процедура недоступна вне проекта. Private Необязательный. Указывает, что процедура Function доступна для других процедур только того модуля, в котором она описана. Static Необязательный. Указывает, что локальные переменные процедуры Function сохраняются в промежутках времени между вызовами этой процедуры. Атрибут Static не действует на переменные, описанные вне процедурыFunction, даже если они используются в этой процедуре. имя Обязательный. Имя процедуры Function, удовлетворяющее стандартным правилам именования переменных. списокАргументов Необязательный. Список переменных, представляющий аргументы, которые передаются в процедуру Function при ее вызове. Имена переменных разделяются запятой.
Optional - Необязательный. Указывает, что этот аргумент необязателен. При использовании этого элемента все последующие аргументы, которые содержит списокАргументов, также должны быть необязательными и быть описаны с помощью ключевого слова Optional. Не допускается использование ключевого слова Optional для любого из аргументов, если используется ключевое слово ParamArray.
ByVal - Необязательный. Указывает, что этот аргумент передается по значению.
ByRef - Необязательный. Указывает, что этот аргумент передается по ссылке. Описание ByRef используется в Visual Basic по умолчанию.
ParamArray - Необязательный. Используется только в качестве последнего элемента в списке списокАргументов для указания, что конечным аргументом является описанный как Optional массив типа Variant. Ключевое слово ParamArray позволяет задавать произвольное количество аргументов. Оно не может быть использовано со словами ByVal, ByRef или Optional.
имяПеременной - Обязательный. Имя переменной, удовлетворяющее стандартным правилам именования переменных.
тип - Необязательный. Тип данных аргумента, передаваемого в процедуру; допускаются типы Byte, Boolean, Integer, Long, Currency, Single, Double, Date, String (только строки переменной длины), Object, Variant. Если отсутствует ключевое слово Optional, допускается указание определяемого пользователем типа или объектного типа.
Инструкции Необязательный. Любая группа инструкций, выполняемых внутри процедуры Function.
выражение Необязательный. Возвращаемое значение процедуры Function
Инструкция Exit Function приводит к немедленному выходу из процедуры Function. Выполнение программы продолжается с инструкции, следующей за инструкцией, в которой была вызвана процедура Function. В любом месте процедуры Function возможно наличие любого числа инструкций Exit Function
Пример:
Function F(x)
F=Cos(x)^2
End Function
Процедуры-функции хранятся вместе с встроенными функциями Экселя, и могут быть вызваны прямо с листа (клик на строку функций - = - выбрать функцию - Пользовательские функции – имя функции) или в Visial Basic с помощью оператора присваивания:
<переменная> = <имя_функции> {(<аргументы>)]
Иногда в первой строке после списка параметров пишут также тип функции.
Пример:
эта функция вернет значение True и сообщение «ОК», если в ячейке А1 значение 5, и во всех остальных случаях False и сообщение "Try again"
Public Function ValidateData() As Boolean
If Cells(1,1)=5 Then
MsgBox “OK”
ValidateData=True
Exit Function
End If
ValidateData=False
End Function
Процедуры-подпрограммы
Процедура-подпрограмма - самостоятельная часть кода, которая имеет имя и может иметь параметры, изменять их значения и выполнять последовательность инструкций. Процедуры-подпрограммы выполняют действия, но не возвращают значение, поэтому они не могут быть использованы в выражениях.
Общий вид подпрограммы:
Sub <имя_подпрограммы> [(<параметры>)] <операторы> End Sub
Пример:
Процедура сообщение выводит сообщение с полем для ввода (InputBox) “Как Вас зовут?”, в поле вводиться имя, которое переноситься в ячейку А1
Public Sub primer()
Dim s As String
s=InputBox(“Как Вас зовут?”)
Range(“A1”).value=s
End Sub
Главное отличие процедур от функций: функции возвращают значение, которое может быть в дальнейшем использовано, а процедуры нет (если не прописать этого отдельно в коде).
Процедуры обработки событий
Процедурой обработки события называют процедуру, выполняющуюся в ответ на событие, инициируемое пользователем или программой или генерируемое системой. Событием называют определенное действие, возникающее при работе с конкретным объектом. Microsoft Access реагирует на целый ряд событий: нажатие кнопки мыши, изменение данных, открытие или закрытие форм и т.д. Обычно события возникают в результате действий пользователя.
С помощью процедуры обработки события пользователь имеет возможность определить собственные отклики на события, происходящие в форме, отчете или элементе управления.
События, для которых чаще всего используются процедуры обработки событий:
Click
Change
Open
Close
Примеры: по щелчку на кнопку с именем cmdcancel закрывается соответствующая UserForm
Private Sub cmdcancel_Click()
Me.Hide
End Sub
Немного информации о бласти видимости процедур
По умолчанию все процедуры VBA (за исключением процедур обработки событий) определяются как открытые(Public). Это значит, что их можно вызвать из любой части программы — из того же модуля, из другого модуля, из другого проекта.
Объявить процедуру как Public можно так:
Public Sub Farewell()
или, поскольку процедура определяется как Public по умолчанию, то можно и так:
Sub Farewell()
Можно объявить процедуру локальной:
Private Sub Farewell()
В этом случае эту процедуру можно будет вызвать только из того же модуля, в котором она расположена. Такое решение иногда может предотвратить ошибки, связанные с вызовом процедур, не предназначенных для этого, из других модулей.
Можно ограничить область видимости открытых процедур (тех, которые у вас определены как Public) в каком-то модуле рамками одного проекта. Для этого достаточно в разделе объявлений этого модуля вписать строку
Option Private Module
Если при объявлении процедуры использовать ключевое слово Static, то все переменные в этой процедуре автоматически станут статическими и будут сохранять свои значения и после завершения работы процедуры