- •Вопросы к экзамену
- •Ключевые слова Private, Public и Static
- •Как видим, для объявления константы используется ключевое слово Const, в отличии от переменных, константные значения занимают меньше места. Приоритеты операций
- •Операции
- •Оператор присваивания
- •Vba функции работы со строками
- •Vba одномерный массив
- •Vba многомерный и двумерный массив
Ключевые слова Private, Public и Static
Private – аналогично ключевому слову Dim, использование Private вместо Dim актуально в том случае, если вы хотите, что бы данное ключевое слово напоминало о том, что переменная доступна только в пределах данной процедуры или функции.
Public – позволяет сделать переменную VBA доступной из любой части проекта, однако, это будет актуальным лишь в том случае, если объявление переменных в VBA происходит в разделе Declarations (Объявления) самого модуля. Если же вы пропишите Public вместо Dim в теле процедуры, то видимость все ровно будет доступна только в данной процедуре.
Static – данное ключевое слово актуально использовать вместо Dim тогда, когда нужно сохранять значение переменной в теле процедуры. Для примера, мы перепишем предыдущий код таким образом:
Sub GetLocal_1()
Static LVar As Integer
' Увеличиваем значение на 2
LVar = LVar + 2
Label2.Caption = "Локальное значение " & LVar
End Sub
Sub GetLocal_2()
Static LVar As Integer
' Увеличиваем значение на 3
LVar = LVar + 3
Label3.Caption = "Локальное значение " & LVar
End Sub
Мы просто изменили ключевое слово Dim на Static, и теперь переменные LVar не будут удаляться из памяти после выполнения процедур. Объявление переменных в VBA. Обратите внимание, что мы объявили переменные с одним именем, это можно, так как они находятся в отдельных процедурах.
Option Explicit
Sub Check_Variables()
Dim a As String
a = "Привет от www.excel-vba.ru"
MsgBox а, vbInformation
End Sub
А если использовать Option Explicit, то такая опечатка будет сразу обнаружена еще до выполнения кода и, что немаловажно – подсвечена. Так что Вам даже не придется её искать, а останется лишь исправить ошибку. Использование констант VBA актуально в следующих случаях:
Если в коде часто используется одно значение, например, код цвета, или параметры компонента.
Универсальность – вы можете в одной строке сразу прописать идентификатор, назначить тип данных и присвоить нужное значение.
Поиск и исправление – не надо пробегаться по всему коду в поисках данных для исправления.
В большинстве случаев имена констант прописывают заглавными буквами, дабы отличать их от имен переменных, например:
Const COMP_NAME As String = “Microsoft”
Как видим, для объявления константы используется ключевое слово Const, в отличии от переменных, константные значения занимают меньше места. Приоритеты операций
Порядок выполнения операций определяется расстановкой круглых скобок и приоритетом (старшинством) операций. Это обеспечивает однозначность в трактовании значений выражений. В таб. 10 приведены приоритеты выполнения операций.
Таблица 10. Приоритеты операции VBA
Приоритет |
Операция |
1 |
Вызов функции и скобки |
2 |
^ |
3 |
- (смена знака) |
4 |
*, / |
5 |
\ |
6 |
Mod |
7 |
+, - |
8 |
>, <, >=, <=, <>, = |
9 |
Not |
10 |
And |
11 |
Or |
12 |
Xor |
13 |
Eqv |
14 |
Imp |
Для иллюстрации вышесказанного приведем пример программы, вычисляющей диаметр, периметр и площадь круга, заданного радиусом (листинг 2).
Листинг 2. Переменные, константы, операции
Private R As Single 'радиус
Public D As Single, S As Single, P As Single 'диаметр, периметр, площадь
Const PI = 3.14 'Константа PI (имеется встроенная функция VBA)
Sub sample2()
Dim res As String
R = 20
D = 2 * R 'вычисляем диаметр
S = PI * R ^ 2 'вычисляем площадь
P = D * PI 'вычисляем периметр
'формируем строку сообщения
res = "Для окружности с радиусом " & CStr(R) & " диаметр равен " & CStr(D) &
_ ", периметр - " & CStr(P) & ", площадь - " & CStr(S)
Debug.Print res ' вывод результата в окно отладчика
End Sub
