- •Лабораторный практикум по информатике для студентов очной формы обучения
- •Часть II. Visual Basic for Applications
- • Иркутский государственный технический университет, 2002
- •664074, Иркутск, ул. Лермонтова, 83
- •Введение
- •Создание интерфейса пользователя
- •Элементы управления
- •2. Основные понятия
- •3. Редактор vba
- •4. Работа с переменными, массивами, константами и со свойствами объектов
- •5. Основные инструкции языка Visual Basic
- •Арифметические операции
- •6. Создание пользовательских форм
- •7. Отладка приложений
- •Р ис. 4. Окно контрольного значения
- •8. Лабораторные работы
- •Vba1. Создание простейшего интерфейса. Калькулятор
- •Vba2. Разветвления
- •Vba3. Переменные, процедуры, функции, циклы, массивы
- •Vba4. Сортировка чисел в столбце по возрастанию или убыванию
- •Vba5. Сортировка чисел в столбце по возрастанию или убыванию с созданием формы
- •Vba6. Создание приложения для вычисления многочленов
- •Vba7. Сортировка чисел в столбце по возрастанию или убыванию с созданием формы и панели инструментов с кнопкой
- •9. Самостоятельные и контрольные задания Задание 1
- •Задание 2
- •Задание 3
- •Задание 4
- •Задание 5
- •Разработка приложения “Решение системы линейных уравнений”
- •2. Разработка приложения “Статистический анализ данных”
- •Разработка приложения “Решение треугольника”
- •Разработка приложения “Определение площади произвольной фигуры”
- •Разработка приложений “Графические построения в плоскости xoy”
- •Разработка приложения “Вычисление определенного интеграла”
- •Интегрирование по методу прямоугольников
- •Интегрирование по методу трапеций
- •Метод Симпсона (парабол)
- •Решение нелинейных уравнений
- •Определение границ существования корней
- •Отделение корней
- •Уточнение корней
- •8. Решение систем линейных алгебраических уравнений
- •По коэффициентам системы составляют расширенную матрицу
- •По элементам последней строки матрицы (1.2) можно найти значение
- •9. Приближенные методы решения систем алгебраических уравнений
- •10. Интерполяция функций, заданных таблично
- •11. Допольнительные курсовые работы для студентов горно-геологических специальностей
- •1. Вычисление координат замкнутого теодолитного хода
- •2. Разработка приложения “Прямая геодезическая задача”
- •3. Разработка приложения “Обратная геодезическая задача”
- •4. Разработка приложения “Преобразование географических координат в прямоугольные и прямоугольных в географические”
- •Литература к курсовой работе 4.
2. Основные понятия
Приложение, созданное на VBA, имеет модульную структуру. Это означает, что процедуры, входящие в приложение, группируются в модули.
Проект – совокупность модулей, предназначенных для решения комплекса задач предметной области.
Модуль – совокупность описаний, процедур и функций.
Инструкция (оператор) – единица кода, которая является операцией или описанием.
Описание – это инструкция, используемая для описания переменных, массивов, констант, типов данных, а также ссылок на внешние функции.
Процедура – поименованный набор описаний и инструкций, сгруппированных для решения определенной задачи.
Процедуры, переменные, модули, константы и другие объекты имеют имена. Имена должны быть понятными и отражать назначение объекта. При именовании следует придерживаться следующих правил:
Длина имени не должна превышать 256 символов.
В имени можно использовать любую комбинацию букв, цифр и символов, но оно должно начинаться с буквы.
Имена не должны включать точек, пробелов и следующих символов: % & ! # @ $
Имена должны быть уникальны внутри области определения.
Область определения зависит от того, где определена процедура, функция или переменная. В одном модуле не может быть процедур и функций с одинаковыми именами, а внутри процедуры или функции имена переменных и массивов не должны дублироваться.
VBA позволяет создавать три типа процедур Sub, Function и Property. При запуске процедуры Sub выполняются команды процедуры, а затем управление передается в приложение или процедуру, которая вызвала процедуру Sub. Function (функция) также решает определенную задачу. Различие заключается в том, что функция возвращает единственное значение, поэтому обычно используется для выполнения вычислений. Property используется для ссылки на свойство объекта. Применяется для установки или получения значения пользовательских свойств форм и модулей. Процедуры Sub подразделяются на процедуры, связанные с элементами управления (событийные) и процедуры общего назначения.
Объект - это программный элемент, который имеет свое отображение на экране, содержит некоторые переменные, определяющие его свойства и некоторые методы для управления объектом. Кроме элементов управления, имеется много встроенных объектов. Например, Worksheet - рабочий лист, Sheet - лист, Range - диапазон ячеек, Cells -ячейка, Dialogsheet - диалоговое окно.
3. Редактор vba
Разработка модулей (процедур) выполняется в редакторе VBA с использованием одного из двух основных методов.
Автоматическая запись макроса и его редактирование. Этот метод позволяет записать выполняемые пользователем действия, а затем в любое время воспроизвести их, т.е. автоматизировать работу. При записи макроса основное приложение создает процедуру с именем макроса, которую можно просмотреть и отредактировать. Требуется выбрать кнопку Записать макрос, выполнить требуемую последовательность действий и остановить макрос. Затем выбрать записанный макрос в списке макросов и нажать кнопку Изменить. Запускается окно редактора VBA и в окне модуля выводится текст макроса. Запись макросов очень полезна для ознакомления с приемами программирования. Например, вы не знаете как запрограммировать вычерчивание отрезка прямой линии: включаете запись макроса, выполняете графические операции с помощью панели инструментов Рисование и смотрите, как выглядят соответствующие инструкции VBA.
Создание процедур и функций в редакторе. В этом случае на лист Excel выносятся требуемые элементы управления и создаются процедуры, связанные с ними, а также процедуры и функции общего назначения.
На рисунке 1 представлено окно проекта, в котором элементы отображаются в виде иерархической структуры, включающей формы, модули, объекты основного приложения (листы книги Excel) и рабочее окно редактора VBA.
Ввод инструкций в редакторе VBA:
В одной строке можно записать одну или несколько инструкций,
Несколько инструкций в одной строке разделяются символом : (двоеточие),
Для продолжения инструкции в следующей строке надо ввести пробел и символ _ (подчерк) в конце строки,
Комментарии начинаются с символа ' (апостроф), комментарии служат для пояснения, они могут записываться как в отдельных строках, так и строке с инструкцией.
Инструкция VBA состоит из элементов, среди которых могут присутствовать:
Ключевое слово - это слово или символ, которые распознаются как элементы языка программирования, например, If, Else, Sub, For и т.д.
Выражение - комбинация ключевых слов, переменных и констант; результатом выражения является строка, число или логическое значение.
Переменная - поименованная область памяти, отведенная для временного хранения данных, которые могут изменяться при выполнении программы.
Массив - поименованная область памяти состоящая из набора элементов (обычно - переменных) определенного типа, каждый элемент имеет свой порядковый номер. Порядковый номер называется индексом элемента в массиве.
Константа - поименованный элемент, сохраняющий постоянное значение втечение выполнения программы.
Методы и свойства объектов: методы - это действия, которые выполняются объектом, а свойства - это переменные, описывающие характеристики объекта. Методы и свойства записываются через точку после имени объекта, например, TextBox1.Text.
Переключение на окно Excel
С оздание формы в редакторе VBA
Рис. 1. Окно Visual Basic, в нем окна проекта и редактора
Структура процедуры:
[Private] Sub имя ([аргументы]) - заголовок процедуры
Инструкции - тело процедуры
End Sub - конец процедуры
Имя - имя создаваемой процедуры;
Аргументы - переменные, позволяющие передать в процедуру требуемые значения.
Private - процедура может использоваться только модулем в котором она находится.
Структура функции:
[Private] Function имя ([аргументы]) [As Type] - заголовок функции
Инструкции - тело функции
Имя= выражение - возвращаемое значение
End Function - конец функции
Имя - имя создаваемой функции;
Аргументы - переменные, позволяющие передать в функцию требуемые значения.
As Type - выражение, определяющее тип результата, возвращаемого функцией.
Пример функции: вычисление длины окружности.
Имя - Circle, аргумент -R (радиус окружности).
Function Circle (R as Double) as Double
Const Pi as Double= 3.14159
Circle=2*Pi*R
End Function
Вызов функции Circle из другой функции или процедуры:
R2=5: S2 =Circle (R2) ' Значение S2 будет равно 31.4159
Аргумент, описанный в функции или в процедуре (в этом примере – это переменная R), называют формальным параметром, а значение аргумента, фактически передаваемое функции или процедуре при ее вызове (в этом примере – переменная R2) , называют фактическим параметром.
Пример процедуры: вычисление длины окружности.
Имя - Circle, аргументы: R(радиус окружности), S(длина окружности).
Sub Circle (R as Double, S as Double)
Const Pi as Double= 3.14159
S=2*Pi*R
End Sub
Вызов процедуры Circle из функции или другой процедуры:
Circle R2, S2