- •Введение
- •Лабораторная работа №1 Знакомство с Visual Basic for Applications
- •Лабораторная работа №2 Создание первой программы в vba
- •Объявление переменных
- •Лабораторная работа №3 Построение алгоритма ветвления. Конструкция If _ Then _ Else
- •Лабораторная работа №5 Организация циклов Операторы for…next и while…wend
- •Цикл For...Next
- •Оператор Do While...Loop
- •Оператор Do Until...Loop
- •Рабочее задание (по вариантам):
- •Информация для выполнения заданий
- •Лабораторная работа № 6 Создание пользовательской формы
Лабораторная работа №2 Создание первой программы в vba
Цель работы: Знакомство со структурой макроса, научиться писать программы в VBA.
Создание модуля. Модуль на языке VBA создается в форме функции или процедуры. Основу процедуры составляет конструкция вида:
Sub Моя_программа()
' Описание переменных
' Операторная часть
End Sub
Здесь ключевое слово Sub объявляет начало процедуры, End Sub завершает процедуру. В теле процедуры сначала объявляются переменные (с указанием их типа), а затем следует операторная часть, в которой и реализуются все необходимые вычисления.
Задание 1. Создание простейшей программы на VBA.
Вставьте новый модуль, выбрав пункт меню: [Insert] - [Module].
Введите следующую программу:
Sub Моя_первая_программа()
MsgBox "Здравствуй, Мир!"
End Sub
Запустите ее на выполнение командой [Run] - [Run Sub/User Form] и убедитесь в ее работоспособности. Если все прошло гладко, примите поздравление с успешным запуском!
Здесь функция MsgBox выводит на экран окно с текстом, заключенным в кавычки. Подобным образом вы можете выводить пользователю различные сообщения о результатах работы вашей программы.
Задание 2. Модифицируем нашу программу и выведем сообщение не в отдельное окно, а непосредственно на рабочий лист открытой книги Excel. Текст программы в этом случае принимает вид
Sub Моя_первая_программа2()
Worksheets("Лист1").Range("A1") = "Здравствуй, Мир!"
End Sub
Здесь объект Worksheets задает один из листов активной книги, а его свойство Range – одну из его ячеек. Если открыто несколько книг Excel, то для выбора нужной используйте конструкцию
Workbooks("Книга1").Worksheets("Лист1").Range("A1") = "Здравствуй, Мир!"
Здесь объект Workbooks предназначен для выбора одной из открытых книг.
Переменные и константы
В Visual Basic переменные хранят информацию (значения). При их использовании Visual Basic резервирует область в памяти компьютера для хранения данной информации. Имена переменных могут достигать 255 символов в длину, начинаются они с буквы, за которой могут следовать другие буквы, цифры или символы подчеркивания(_). Регистр символов и наименований переменной значения не имеет. Следующая таблица перечисляет некоторые возможные имена переменных и объясняет, подходят ли они по стандарту. Таблица 1
|
Base1_Ball |
|
Подходит |
|
1Base_Ball |
|
Не подходит, так как начинается не с буквы. |
|
Base.1 |
|
Не подходит, так как используется точка. |
|
Base&1 |
|
Не подходит, так как используется амперсант. |
Все символы в имени переменной являются значимыми, но их регистр не имеет значения. BASE обозначает ту же переменную, что и base.
Использование осмысленных имен помогает документировать текст программы и облегчает неизбежный процесс ее отладки. Выразительное имя переменной является прекрасным способом для улучшения читаемости программы. Например, переменная Sum (для суммы чисел) более понятна, чем Ufd.
В качестве имен новых переменных нельзя использовать зарезервированные слова, например, имя Sub не подходит для переменных, так как зарезервировано для описания процедур.
Типы переменных
Visual Basic работает с 14 стандартными типами переменных. Кроме того, программист может определить собственный тип данных. Далее описаны те из них, которые в основном применяются при работе с данными.
Byte - Байтовый тип предназначен для хранения целых чисел от 0 до 255. Его использование позволяет сильно экономить оперативную память и уменьшать размер массивов. Кроме того, он используется при работе с двоичными файлами.
Integer - Целочисленные переменные могут хранить только относительно небольшие целые числа (в диапазоне от -32768 до +32767). Арифметические операции над такими числами выполняются очень быстро.
Long Integer -В таких переменных хранятся целые значения от -2 147483648 до +2 147483647. Арифметические операции над такими числами выполняются тоже очень быстро, и при работе существует лишь небольшая разница в скорости вычислений между Long Integer и Integer.
String - Строковые переменные хранят символы. Теоретически такая переменная может содержать до 2 миллиардов символов. В любом случае на конкретном компьютере это число будет гораздо меньше из-за ограниченных объемов оперативной памяти, ресурсов Windows или числа символов, используемых в форме.
Single - Данный тип переменной позволяет хранить дробные числа с точностью до семи цифр. Это означает, что если получается результат 12345678.97, то часть 8.97 не является точной. Результат может быть равен, к примеру, 12345670.01. Длина чисел может достигать 38 знаков. Вычисления с данными переменными тоже будут приблизительными. Более того, арифметические действия выполняются медленнее, чем с целочисленными переменными.
Double - Переменные такого типа позволяют хранить числа с точностью до 16 цифр и длиной до 300 символов. Вычисления с ними тоже являются приблизительными, а скорость их относительно небольшая. В основном переменные типа Double используются для научных расчетов.
Currency -Данный тип может иметь до 4 цифр после запятой, и до 14 - перед ней. Внутри данного диапазона вычисления будут точными. Данный тип является предпочтительным для проведения финансовых расчетов.
Date -Этот тип данных позволяет хранить значения времени и даты в промежутке от полуночи 1 января 100 года до полуночи 31 декабря 9999 года.
Boolean - Логический тип данных может хранить только два значения: True либо False. Его использование вместо целочисленных переменных является хорошим стилем программирования.
Variant - Переменная типа variant может содержать данные любого типа.