Dim X(1 TO 5) As Integer, Y(1 To 10, 1 To 20) As Double
Здесь Х - одномерный массив, состоящий из 5 элементов целого типа, Y - двумерный массив, у которого 10 строк и 20 столбцов с элементами числового типа двойной точности.
Выражения
Выражения устанавливают порядок выполнения действий над элементами данных. Выражения состоят из операндов и знаков операций. Операндами являются константы, переменные, указатели функций, выражения, взятые в скобки.
Виды операций
Операции бывают арифметические, отношения и логические:
– арифметические операции:
^ возведение в степень,
* умножение,
/ деление,
\ деление нацело,
mod остаток от деления,
+ плюс,
- минус;
– операции отношения:
< меньше,
> больше,
<= меньше или равно,
>= больше или равно,
= равно,
<> не равно;
– логические операции:
Not логическое отрицание,
And логическое "И",
Or логическое "ИЛИ".
Результатом логической операции может быть одно из двух значений:
True ("истина") или False ("ложь").
Приоритет выполнения операций
Если выражение содержит несколько операций, то приоритет их выполнения следующий:
1. Сначала выполняются арифметические операции
2. Далее операции отношения (они имеют одинаковый приоритет).
3. Последними выполняются логические операции в таком порядке, как они представл
Алфавит. Комментарии. Имена переменных. Операция присвоения. Математические операции. Операции присвоения. Логические операции.
Алфавит языка VBA
В него входят:
Прописные и строчные буквы латинского алфавита (A-Z, a-z);
Прописные и строчные буквы кириллицы (А-Я, а-я);
Цифры от 0 до 9;
Символы подчеркивания “_”.
Неизображаемыесимволы используемые для отделения слов друг от друг (пробел, табуляция, переход на новую строку);
Специальные символы,: + – * / \ ^ = >< [ ] ( ) . , : ; { } ‘ & @;
Составные символы,: <= , >= , <>.
Комментарии - для пояснения к тексту программы для пользователя, размещается на одной строке текста программы, начинается со знака «‘» или с зарезервированного слова Rem.
Имена переменныхдолжны удовлетворять правилам:
Первый символ обязательно буква.
Не использовать .!@&$# и пробел.
Имя должно содержать буквы, цифры и знак подчеркивания.
Длина не больше 255 символов, но иметь в виду, что VBA различает первые 31 символов от начала.
Имена не должны совпадать с зарезервированными словами VBA.
Имя не должны повторяться ни на одном уровне определения,
Операция присваивания
При объявлении переменной резервируется ячейка памяти согласно указанного типа и ничего туда не заносит. Чтобы переменная получила свое значение нужно использовать операцию присваивание. Присваивание имеет следующую синтаксическую конструкцию:ИмяПеременной = Значение
ИмяПеременной — имя переменной; символ « = » знак операции присваивания; Значение — числа, или комбинация переменных, констант
Математические операции
Операции сложения, вычитания, умножения и деления-основные Остальные математические операции называются дополнительными. Они применяются в специальных математических формулах и при обработке текстовой информации.
Result = 10\3 – результат 3 (целая часть от деления);
Result = 10 Mod3 – результат 1 (остаток от деления);
Result = 3^2 – результат 9;
Result = -3*2 – результат -6.
Операция отношения имеет т два значения — True (Истина) и False (Ложь), которые могут быть присвоены переменным типа Boolean или определенному свойству объекта. Перечень операций отношения VBA
Логические операцииприменяются в логических выражениях. Если сущ. несколько условий выбора в операциях отношения, то эти операции связываются между собой логическими операциями
| ||||||||||
Процедуры ,процедуры-функции. Общие процедуры .Процедуры обработки событий .Объявление переменных
[Область видимости] SubИмя_Процедуры(Список_Параметров)
[раздел описаний (констант и переменных)]
тело процедуры (операторы)
EndSub
[Область видимости] –указывают Public, если процедура глобальная и доступна (видна) из других модулей, либо Private, если процедура локальная и доступна (видна) только внутри данного модуля и не может быть вызвана из других модулей. Sub – зарезервированное слово VBA объявляет начало процедуры, за ним задается имя_процедуры, в скобках указывается список параметров, передаваемых при вызове процедуры из программы (список параметров может отсутствовать). Список_Параметров – список переменных, передаваемых процедуре при вызове ее из другой процедуры: Имя_ПараметраAsТип_Данных, As –зарезервированное слово VBA указывает, что за ним следует тип переменной.[раздел описаний (констант и переменных)] –раздел описания констант и переменных.
Определение: константа — это поименованная область памяти для хранения данных, значение которым присваивается при определении константы; значения остаются постоянными и не могут быть изменены во время выполнения программы.
Для определения констант служит зарезервированное слово Const.
Синтаксис описания констант:
ConstИмя_КонстантыAs Тип= значение
Например:
' Объявлена числовая константа для хранения
'значениячисла Pi
Const Pi As Single = 3.1415926
где Const(Константа) — зарезервированное слово, которое сообщает VBA, что декларируется константа и резервируется область памяти для ее хранения; Имя_Константы — имя константы, не входящее в перечень зарезервированных слов VBA; As(Как) — зарезервированное слово, которое сообщает VBA, что определяется тип данных константы; Тип — Тип_константы определяет размер памяти занимаемой константой (прил. 2, п.1.6, табл. 4). При наборе программы всреда редактора VBA после набора зарезервированного слова As раскрывается список типов объектов и базовые Типы_Дынных. Выбранный в списке Тип_Данных устанавливается двойным щелчком мыши, нажатием клавиши <Таb> или нажатием клавиши <Enter>. Определение: переменная — это поименованная область памяти для хранения данных, которые могут изменяться в процессе выполнения программы.
Поскольку в VBA имеются определенные соглашения по отношению имени и типа переменной, то во избежание путаницы типов данных, переменные необходимо описывать или декларировать. Синтаксис описания переменных: Dim [Static]Имя_Переменной[ AsТип]где Dim (Определить) — зарезервированное слово, которое сообщает VBA, что декларируется переменная и резервируется область памяти для ее хранения. Имя_Переменной — имя переменной, не входящее в перечень ключевых слов VBA. As(Как) — зарезервированное слово, которое сообщает VBA, что определяется тип данных для переменной. Тип — Тип_переменной определяет размер памяти занимаемой переменной (прил. 2, п.1.6, табл. 4). Static(Статический) — зарезервированное слово VBA, позволяет сохранить значение переменной между вызовами процедуры, в которой она объявлена, инструкция Staticиспользуется только на уровне процедуры.
Тело процедуры (операторы) – алгоритм записанный на языке VBA.
End Sub – операторная скобка, указывающая на конец процедуры. Каждому оператору Sub обязательно соответствуетEnd Sub.
Примечание: В разделе [раздел описаний (констант и переменных)]сначала описываются все константы, а затем все переменные.[раздел описаний (констант и переменных)]не является обязательным в процедурах.
Область видимости переменных и констант (три уровня):
1) До сих пор говорилось об описании констант и переменных внутри процедуры. Их также можно объявлять в верхней части модуля, которая называется областью общих объявлений. Область объявления переменных определяет область их видимости. Если переменная (константа) объявлена в процедуре, то процедура их видит и работает с ними, а другие процедуры не могут использовать эти переменные и их значения. Такие переменные называются локальными. В этом случае говорят, что переменная видна на уровне процедуры.
2) Для того чтобы значения определенных констант и переменных были доступны всем процедурам данного модуля, надо их объявить в области общих объявлений модуля (GeneralDeclarations), перед словом Dim поставить слово Private. Такие переменные и константы видимы на уровне модуля.
3) Для того чтобы переменные и константы модуля можно было использовать в любой процедуре любого модуля данного приложения, необходимо описать их как глобальные. Нужно помнить, что они находятся в оперативной памяти все время выполнения приложения и, следовательно, потребляют системные ресурсы. Глобальные переменные объявляются в области общих объявлений модуля, перед словом Dim ставится слово Public.
Аналогично описываются в области общих объявления модуля константы:
[Public|Private]ConstИмя_КонстантыAsТип= значение
Но если в верхней части окна модуля есть оператор OptionExplicit, то необходимо описать все переменные и константы.
Инструкция OptionExplicit в секции General находится в модуле до всех процедур.При использовании инструкции OptionExplicit необходимо явно описать все переменные с помощью инструкций Dim, Private, Public, ReDim или Static. При попытке использовать неописанное имя переменной возникает ошибка во время компиляции
Процедуры обработки событий (Процедура_Событие)
Событие (event) – это действие над объектом (например: нажатие командной кнопки, выполнение директивы меню, открытие или закрытие таблицы Excel и т.п.) Имя Процедуры_События состоит из имени объекта и действия (События), которые объединяются символом подчеркивания “_”.
Синтаксис Процедуры_События:
PrivateSubИмяОбъекта_Событие ( )
тело процедуры (операторы)
EndSub
Общее между общей процедурой и Процедурой_События зарезервированное слово Sub. Принципиальное отличие общей процедуры от Процедуры_События заключается в том, что для общей процедуры имя подбирает пользователь,адляПроцедуры_События имя создаётся средойVBA
20) встроенные функции (математические)
Примеры | Значение |
Abs(x) | Возвращает модуль x |
Cos(x) | Возвращает кос x, заданного в рад. |
Sin(x) | Возвращает синx, заданного в рад |
Sqr(x) | Возвращает квадратный корень x |
Rnd[(x)] | Возврат псевдослучайное число одинарной точности в интервале от0 1. |
Int(x) | Возвращает выделенную целую часть x |
Tan(x) | Возвращает тангенс числа x |
Atn(x) | Возвращает арктангенс числа x в радианах |
Exp(x) | Возвращает возведения e в указанную степень , где e – основание in |
Log(x) | Возвращает значение inx |
21)условный оператор if…then
If ... Then — линейный и блочный.
Линейный оператор чтобы выполнить какой-либо один оператор, если некоторое условие будет истинным.
Синтаксическая конструкция
If<Условие>Then<Оператор_1>Else<Оператор_2>
При значении Условия = True выполняется Оператор_1, следующий засловом Then, а затем следующий за условным оператор. Если Условие принимает значение False, то выполняется следующий за Else оператор Оператор_2. Else может отсутствовать, тогда оператор называется безальтернативным и, если Условие= True, то выполняется Оператор_1, а затем следующий за условным оператор. Если Условие= False, а выполняется следующий оператор.
Блочный оператор имеет синтаксис:
If<Условие_1>Then
<Операторы_1, если Условие=True>
[ElseIf<Условие_2>Then
<Операторы_2, если Условие_2=True>]
[ElseIf<Условие_3>Then
<Операторы_3, если Условие_3=False>]
[Else
<Операторы>]
EndIf
<Условие_1> – необходимая часть оператора, это то Условие, которое должно проверяться. Если значение этого условия True, то выполняется Операторы_1 следующие за словом Then. Если необходимо проверить еще условия, то добавляется зарезервированное слово ElseIf с последующим условием. Если Условие_2=True, то выполняются Операторы_2. Если необходимы еще условия, то добавляются еще структура ElseIf и если все Условия не выполняются, то выполняются Операторы следующие за словом Else.
Операторы If могут быть вложенными друг в друга. Такое вложение операторов применяется, если нужно проверить какое-либо условие при другом условии, которое является True и включить альтернативу Else.
Задача 6 (алгоритм ветвления) Найти наибольшее из трех чисел a,b и c. Составить программу.
Решение
Дано: три числа a, b, c.
Найти: наибольшее из трех чисел.
Набирать процедуру на месте курсора:
Private Sub CommandButton1_Click()
Dim a, b, c As Single
Dim max As Single
’Вводданных
a = Range("A1").Value
b = Range("B1").Value
c = Range("C1").Value
’Вычисление
If a > b And a > c Then
max = a
Else
If b > c Then
max = b
Else
max = c
End If
EndIf
’Вывод результатов в ячейку B4
Range("B4").Value = "Максимальное число = " &max
EndSub