
Типы переменных
Тип данных |
Размер (байт) |
Диапазон значений |
Byte (байт) |
1 |
От 0 до 255 |
Boolean (логический) |
2 |
True (Истина) или False (Ложь)
|
Integer (целое) |
2 |
От –32 768 до 32 767 |
Long (длинное целое) |
4 |
От -2 147 483 648 до 2 147 483 647 |
Single(с плавающей точкой обычной точности) |
4 |
По абсолютной величине от 1,401298E-45 до 3,402823E38 |
Double(с плавающей точкой двойной точности) |
8 |
По абсолютной величине от 4,94065645841247E-324 до 1,79769313486232E308 |
Currency (денежный) |
8 |
От 922 337 03 685 77,5808 до 922 337 203 685 477,5807 |
Date (дата) |
8 |
От 1 января 100 г. до 31 декабря 9999 г. |
Object (объект) |
4 |
Любой указатель объекта |
String (строка переменной длины) |
10 + длина строки |
От 0 до 2*109 |
String (строка постоянной длины) |
длина строке |
От 1 к приблизительно 65 400 |
Array (массив) |
Зависит от размера массива и типа элементов массива |
|
Variant (вариант) |
Зависит от содержимого переменной |
Переменные необязательно задавать явным образом, но красивый стиль программирования рекомендует это делать. Тип переменной может отсутствовать. Тогда принимается тип Variant. Для описания переменной используется ключевое слово Dim.
Переменную можно описать с помощью следующей конструкции:
Dim Имя_Переменной As Тип_Переменной
Например, Dim A As Integer, B As Currency
Константы задаются одной из следующих конструкций:
Const Имя_Постоянной = Выражение
Const Имя_Постоянной As Тип_Постоянной = Выражение
Например, Const FileName = “test.xls”
Пример функции для вычисления площади круга при известном радиусе:
Function SQ (R) As Variant
Const Pi As Double = 3.14159
SQ = Pi * R^2
End Function
Прежде, чем начинать работать с процедурами и функциями, нужно научиться загружать редактор VBA и присоединять код к файлам рабочей книги Excel.
Редактор Visual Basic(VBE) обеспечивает все средства , необходимые для управления компонентами пользовательского проекта, написания кода, создания форм и отладки приложений.
Чтобы загрузить VBE, нужно выполнить команду Сервис/Макрос/Редактор Visual Basic.
На экране появится окно VBE. Рассмотрим основные компоненты окна. Основные компоненты окна Редактора VBE представлены в раздаточном материале
Окно проекта (Project Window) – содержит иерархический список элементов пользовательского проекта.
Окно свойств (Properties Window) – позволяет просматривать и устанавливать свойства различных объектов проекта.
Окно редактора кода (Code Editor Window) – Место ввода и редактирования кода VBA.
Окно отладки, окно локальных переменных и окно локальных значений (Watch Window) – помогает при отладке программы.
Кроме того могут присутствовать окно редактора пользовательских форм (UserForm Editor Window) и окно просмотра объектов (Object Browser Windows)
Программа VBA состоит из одного или нескольких модулей. Модуль – это лист с текстом программы, вставленный в рабочую книгу.
Ввод подпрограмм в модуле VBA начинается с первой строки с ключевого слова Sub или Function, а заканчивается ключевыми словами End Sub и End Function.
Обычно текст программы на VBA начинается с опций, которые управляют описанием переменных, способом сравнения строк и т. д.
При написании программ удобно в тексте помещать комментарии – это пояснительный текст, который можно записать в любом месте программы. Каждая строка комментария начинается со знака апострофа. Комментарии игнорируются компилятором, и поэтому никакого влияния на программу не оказывают. Комментарии удобно использовать при отладке операторов для их временного отключения.
Для более компактной записи программы используется символ « : » в качестве разделителя операторов в одной строке.
Инструкция VBA представляет собой полную команду языка VB. Она может содержать ключевые слова, операторы, переменные, константы и выражения. В VBA имеются следующие категории инструкций:
Описания;
Присваивания;
Управления.
Оператор присваивания назначает результат вычисления выражения переменной, константе или свойству объекта. Оператор присваивания всегда включает знак равенства =.
Структури керування – це інструмент для прийняття рішень усередині самої програми У VBA використовуються такі основні структури керування:
If…Then…Else
Select Case
For…Next
Do…Loop.
Нижче будуть наведені приклади синтаксису цих структур.
Умовний оператор If…Then…Else
Умовне виконання групи операторів в залежності від значення вираження.
Синтаксис:
проста лінійна форма:
If умова Then [оператор_1] [Else оператор_2]
Оператор_1 виконується, якщо умова є істинною, в протилежному випадку виконується оператор_2. Умова це вираження логічного типу. Вираження може бути простим та складним. В першому випадку використовуються логічні відносини, перелік яких наведений у таблиці 3.1. Складні логічні вираження утворюються із простих за допомогою використання логічних операцій, перелік яких наведений у таблиці 3.2. та, при необхідності, круглих дужок.
блочна форма:
If умова_1 Then
[блок_ операторів1]
[ElseIf умова_2 Then
[блок_ операторів2]
[ElseIf умова_3 Then
[блок_ операторів_3]
...
[Else
[блок_ операторів]]
End If
Блок операторів_i виконується, якщо умова_ I є істинною, в протилежному випадку виконується блок_ операторів.
Оператори Else та ElseIf є необов'язковими. Можна використовувати стільки операторів ElseIf скільки потрібно в блоці If, але вони ніколи не можуть знаходиться після оператора Else. Блоки операторів If можуть бути вкладеними; тобто містить у собі інші If блоки.
Приклад. If C < 50000 Then
s3 = p3
f1 = 3
End If
Логічні відносини
Операція |
Найменування |
Вираження |
Результат |
= |
дорівнює |
A=B |
True, якщо A дорівнює B |
<> |
не дорівнює |
A<>B |
True якщо A не дорівнює B |
> |
більше |
A>B |
True якщо A більше B |
< |
менше |
A<B |
True якщо A менше B |
>= |
більше або дорівнює |
A>=B |
True якщо A більше або дорівнює B |
<= |
менше, або дорівнює |
A<=B |
True якщо A менше, або дорівнює B |
Логічні операцій
Операція |
Найменування |
Вираження |
A |
B |
Результат |
Not |
Логическое отрицание |
Not A |
False True |
|
True False |
And |
Логическое И |
A And B |
True True False False |
True False True False |
True False False False |
Or |
Логическое ИЛИ |
A Or B |
True True False False |
True False True False |
True True True False |
Оператор Select Case
Виконує одну з декілька груп операторів в залежності від значення вираження, що перевіряється.
Синтаксис:
Select Case вираження, що перевіряється
[Case список виражень-n
[оператори-n]] ...
[Case Else
[else оператори]]
End Select
Оператори циклу
Для виконання якогось оператору, або блоку операторів, декілька разів використовуються оператори циклу. Існують 2 види циклів:
цикли, які виконуються заздалегідь задану кількість разів, в VBA для цього використовується оператор For ... Next;
цикли, які виконуються до тих пір поки не буде виконана яка-небудь умова – оператор Do … Loop
Є різновиди кожного типу циклів.
Нижче наведено синтаксис основних видів операторів циклу.
Оператор циклу For ... Next
Повторює блок операторів задану кількість раз.
Синтаксис For лічильник = початок To кінець [Step крок]
[оператори]
[Exit For]
[оператори]
Next [лічильник]
лічильник - обов’язковий; числова змінна, яка використовується як лічильник циклу;
початок - обов’язковий;. початкове значення лічильника;
кінець - обов’язковий; кінцеве значення лічильника;
крок - необов’язковий; значення, на яке змінюється лічильник при кожному виконанні циклу. За умовчанням дорівнює одиниці.
оператори – оператори; один, або більш операторів між For and Next, які виконуються задану кількість разів.
Приклад.
For j = 2 To n
C = Cells(j, 2).Value 'змінної C присвоюється значення комірки j-го рядка стовпця B
…………………………………
....................................................
...................................................
Next j
Оператор циклу Do … Loop
Повторює блок операторів поки умова є істинною – while, або до тих пір, коли умова стане істинною – until.
Синтаксис:
Do [{While | Until} умова]
[оператори]
[Exit Do]
[оператори]
Loop
Приклад.
Do While pr1 = 0 'цикл виконується доки pr1=0
...............................................................
...............................................................
..............................................................
Loop
Приклад використання різних типів операторів циклу. Обчислити значення функції F (див. попереднє завдання) для декількох значень аргументу X, що знаходяться на листі Excel у стовпці A, с другого рядку, тобто A2 – це адрес першого значення аргументу.
Одним із варіантів організації діалогу с користувачем є використання функцій MsgBox та InputBox.