- •Содержание
- •Введение
- •1 Основные понятия языка программирования vba
- •1.1 Элементы языка
- •1.2 Константы
- •1.3 Идентификаторы
- •StrMyName, I, intNumOne, Номер, Max_Len и т.П.
- •1.4 Переменные
- •1.5 Выражения и операции
- •1.6 Массивы
- •1.7 Строки
- •2 Структура программы на vba
- •2.1 Оператор комментария
- •2.2 Оператор присваивания
- •2.3 Оператор вывода и диалоговые окна ввода/вывода информации
- •2.4 Оператор безусловного перехода
- •2.5 Оператор условного перехода
- •2.6 Оператор множественного выбора
- •2.7 Операторы цикла
- •If условие Then Exit For
- •If условие Then Exit Do
- •2.8 Обработка информационных массивов
- •2.9 Процедуры и функции
- •2.10 Обработка строковой информации
- •3 Элементы среды разработки vba
- •3.1 Панель инструментов Стандартная
- •3.2 Элементы управления
- •Лабораторная работа №1 Тема: Инструментальная среда языка программирования vba
- •1) Активизируйте редактор vba.
- •2) Ознакомьтесь с интерфейсом редактора vba.
- •3) Добавьте в окно проекта Стандартный модуль командой меню Вставка/Модуль (Insert/Module).
- •4) Добавьте Форму в окно проекта командой меню Вставка/ UserForm (Insert/ UserForm).
- •Лабораторная работа №2 Тема: Разработка программ линейной структуры в среде vba
- •1) Способ представления алгоритма в виде блок-схемы.
- •2) Линейная структура программы в vba.
- •5) Выполните ввод числовых значений:
- •6) Программа выведет на экран монитора диалоговое окно с результатом вычислений:
- •Индивидуальные задания для самостоятельной работы
- •Задание 1. По предложенной блок-схеме разработать программу. Используя функцию Round, округлить результаты вычислений.
- •Варианты задания 3
- •Лабораторная работа №3 Тема: Разработка программ разветвленной структуры в среде vba
- •1) Понятие разветвленной вычислительной структуры.
- •Индивидуальные задания для самостоятельной работы
- •Лабораторная работа № 4 Тема: Разработка программ циклической структуры в среде vba
- •1) Понятие циклического вычислительного процесса.
- •2) Реализовать данную программу в среде vba Microsoft Excel:
- •3) Внести изменения в программу Пример4 так, чтобы было возможно вычисление суммы любого количества чисел «2».
- •4) Реализовать данную программу в среде vba Microsoft Excel:
- •7) Реализовать данную программу (рис. 22) в среде vba Microsoft Excel. Выполнить вывод заголовков и результатов в окно Immediate:
- •Индивидуальные задания для самостоятельной работы
- •Лабораторная работа № 5 Тема: Разработка программ обработки информационных массивов в среде vba
- •1) Порядок обработки информационного массива.
- •4) Реализовать данную программу в среде vba Microsoft Excel:
- •Лабораторная работа №6 Тема: Разработка программ смешанной структуры в среде vba
- •2) Реализовать данную программу в среде vba Microsoft Excel:
- •Индивидуальные задания для самостоятельной работы
- •Блок-схема алгоритма:
- •Литература
- •Правила изображения блок-схем
- •Указатель
If условие Then Exit Do
2.8 Обработка информационных массивов
С элементами массива удобно работать, используя цикл For. В этом случае в качестве счетчика цикла будет использоваться значение индекса элемента.
Блок операторов ввода элементов массива с последующим их выводом в окно Immediate на языке VBA можно записать следующим образом:
For i = 1 То 5
A(i) = InputBox(“Введите” & I & “-й элемент массива”)
Debug.Print I, “элемент ”, A(i)
Next i
Таким образом, изменяя индекс, можно легко переходить от одного элемента к другому.
Для визуализации заполнения массива элементами удобно использовать управляющий элемент Окно списка (ListBox), который представляет собой упорядоченный список значений.
При размещении в окне списка нового элемента используется метод AddItem, который имеет в качестве аргумента переменную, значение которой добавляется в список.
Синтаксическая конструкция имеет вид:
ListBox.AddItem Идентификатор
Например, чтобы увеличить зарплату на размер премии равный 10% необходимо создать проект Формы с управляющими элементами:
ListBox1, ListBox2, TextBox1, CommandButton1, как показано на рисунке 4:
Рис. 4 Проект Формы с управляющими элементами
Private Sub CommandButton1_Click()
Dim z( ), p( ) As Single, i, n As Integer
n = Val(TextBox1.Text)
ReDim z(n), p(n) As Single ‘Описание динамического массива
For i = 1 To n
z(i) = Rnd( ) * 10000 ‘Генерирование зарплаты величиной до 10000
ListBox1.AddItem z(i) ‘Вывод значения зарплаты в окно списка
p(i) = z(i) * 1.1
ListBox2.AddItem p(i) ‘Вывод значения премиальных в окно списка
Next i
End Sub
2.9 Процедуры и функции
Процедуры и функции призваны упростить работу с большими программами. Они представляют собой последовательности операторов языка, выполняющих некоторое законченное действие. У процедур, в отличие от функций, не существует возвращаемого значения. Применение процедур и функций эффективно тогда, когда необходимо несколько раз выполнять одну и ту же операцию в разных местах программы.
1) Процедура и её вызов в языке VBА записывается следующим образом:
Sub Имя_процедуры (формальные параметры)
ОПЕРАТОРЫ
End Sub
Sub Программа ( )
Call Имя_процедуры (фактические параметры)
End Sub
где Call – оператор вызова подпрограммы;
формальные параметры – имена тех переменных, значения которых необходимо передать в процедуру в данный момент;
фактические параметры – конкретные значения переменных.
Между формальными и фактическими параметрами устанавливается строгое соответствие, которое задается порядком их следования.
Например, фрагмент программы, в которой через работу процедуры записывает слово Теsт в столбец из 10 ячеек, начиная с А1. При этом каждый раз выдается звуковой сигнал.
Sub Сигнал()
For Count = 1 To 10
For j = 1 To 10000000 ‘Пустой цикл – приостановка действия
Next j
Call Подпрограмма(Count)
Next Count
End Sub
Sub Подпрограмма(i)
Cells(i, 1).Formula = "Test"
Beep
End Sub
2) Функции пользователя отличаются от процедур тем, что они возвращают значение, и это значение может быть использовано в выражениях наравне с другими переменными. Функция имеет следующую структуру:
Function Имя_функции (формальное параметры) [As тип]
ОПЕРАТОРЫ
End Function
Sub Программа ( )
И мя_Переменной = Имя_функции (фактические параметры)
End Sub
Например, фрагмент программы, в которой реализован вызов функции, вычисляющей площадь произвольного многоугольника, изображённого на рисунке:
Function SТреугольника(a, b, c) As Single
Dim P As Single
P = (a + b + c) / 2
SТреугольника = Sqr(P * (P - a) * (P - b) * (P - c))
End Function
Sub Sфигуры()
s1 = SТреугольника(10, 5, 6)
s2 = SТреугольника(5, 6, 5)
s3 = SТреугольника(6, 6, 5)
s4 = SТреугольника(7, 5, 6)
Debug.Print "Площадь фигуры ="; s1 + s2 + s3 + s4
End Sub
Выдача результата в окне Immediate будет иметь вид:
Площадь фигуры = 51,73184