- •Е. А. Сидорова, п. С. Челобанов основы программирования на vba омск 2011
- •1. Понятие и свойства алгоритма
- •1.1. Понятие алгоритма
- •1.2. Свойства и виды алгоритмов
- •1.3. Способы представления алгоритмов
- •2. Язык программирования vba
- •2.1. Языки программирования
- •2.2. Общие сведения о vba
- •2.3. Основные понятия языка программирования
- •2.4. Алфавит vba
- •2.5. Типы данных
- •2.6. Формы записи вещественных чисел в программе
- •2.7. Переменные
- •2.8. Константы
- •2.9. Встроенные функции
- •2.10. Выражения
- •2.11. Редактор Visual Basic
- •2.12. Правила записи и ввода программ на vba
- •2.13. Создание первой программы
- •3. Управление вводом и выводом данных
- •3.1. Оператор присваивания
- •3.2. Операторы ввода данных
- •3.3. Генерирование случайных чисел
- •3.4. Операторы вывода данных
- •4. Линейные вычислительные процессы
- •5. Разветвляющиеся вычислительные процессы
- •5.1. Алгоритм разветвляющегося процесса
- •5.2. Оператор условного перехода If
- •5.2.1. Однострочный (линейный) оператор If
- •If Условие Then Операторы_1 [ Else Операторы_2 ],
- •5.2.2. Блочная форма оператора If
- •5.3. Объединение условий с помощью логических операций
- •5.4. Оператор безусловного перехода GoTo
- •5.5. Оператор выбора Select Case
- •6. Символьные переменные
- •6.1. Общие понятия
- •6.2. Сравнение строк
- •6.3. Строковые функции
- •6.4. Оператор Mid
- •7. Введение в объектно-ориентированное программирование
- •7.1. Основные понятия
- •7.2. Создание пользовательского интерфейса
- •7.3. Установка свойств объектов и определение методов
- •7.4. Составление программного кода
- •7.5. Создание пользовательского приложения с использованием формы
- •7.5.1. Создание формы
- •7.5.2. Разработка программного кода
- •8. Циклические вычислительные процессы
- •8.1. Понятие цикла
- •8.2. Арифметический цикл
- •8.2.1. Цикл с разветвлением
- •8.2.2. Цикл со счетчиком. Вычисление максимума и минимума
- •8.2.3. Вложенные циклы
- •8.3. Вычисление сумм и произведений
- •8.4. Итерационные циклы
- •8.4.1. Операторы цикла Do … Loop
- •9. Модульное программирование.
- •9.1. Понятие процедуры
- •9.2. Параметры процедур – формальные и фактические
- •9.3. Разработка процедур-функций
- •9.4. Разработка процедур-подпрограмм
- •9.5. Срочный выход из процедур и циклов
- •10. Переменные с индексами. Одномерные массивы
- •10.1. Понятие массива
- •10.2. Ввод массива
- •10.2.1. Считывание массива с листа Excel
- •10.2.2. Заполнение массива случайными числами
- •10.3. Вывод массива
- •10.4. Решение задач с использованием массивов
- •644046, Г. Омск, пр. Маркса, 35
2.13. Создание первой программы
Последовательность действий для создания программы следующая.
1. В редакторе VBA в проект добавляется стандартный модуль командой Insert → Module. В окне Project Explorer появится модуль Module1, одновременно откроется окно редактора кода Code.
2. В окне редактора кода (рис. 3) вводится программный код, например:
Sub Программа1()
MsgBox "Моя первая программа!"
End Sub
Рис. 3. Создание первой программы
3. Программа готова. Осталось ее выполнить (запустить) командой меню Run → Run Sub/UserForm или нажатием клавиши F5. Результат выполнения программы приведен на рис. 4.
4. При нажатии на кнопку OK происходит возврат в редактор VBA.
Р
ассмотрим
структуру этой программы. Первая и
третья строки – это первая и последняя
инструкции процедуры. В первой строке
выполнено объявление пользовательской
процедуры
типа Sub
(подпрограмма) с именем Программа1.
Круглые скобки после имени процедуры
обязательны, в них указываются параметры
подпрограммы, если они есть (в данном
случае они отсутствуют). В третьей
строке указан оператор End Sub,
завершающий процедуру. Если заголовок
процедуры напечатан правильно, то после
нажатия клавиши Enter
оператор End
Sub
добавляется редактором VBA
автоматически.
Между первой (Sub) и последней (End Sub) строками расположено «тело» процедуры, т. е. код программы. В данном случае тело процедуры состоит всего из одного оператора MsgBox, в результате его выполнения на экране отображается диалоговое окно с кнопкой OK и сообщением, текст которого указан в этом операторе.
Необходимо учитывать, что в VBA может выполниться только тот программный код, который содержится в какой-либо процедуре, т. е. между строками с операторами Sub и End Sub. Если записать код программы вне процедуры, то этот код выполняться не будет, поскольку он становится «невидимым» для компилятора. Добавить новую процедуру (т. е. вставить операторы Sub и End Sub) в программный модуль можно автоматически, выполнив команду меню Insert → Procedure и указав в открывшемся окне Add Procedure в поле Name имя процедуры.
Сохранение программы на диске выполняется обычным для документов Microsoft Office способом: необходимо выполнить команду меню Файл → Сохранить как, указав имя файла и папку, в которой он должен располагаться.
3. Управление вводом и выводом данных
3.1. Оператор присваивания
Оператор присваивания Let служит для вычисления значения выражения и присваивания этого значения переменной. При записи программы ключевое слово Let можно опускать.
Формат оператора:
[Let] Имя_переменной = Выражение
Примеры:
A = 2.1
Summa = X + Cos(X)^2
Следует различать оператор присваивания и алгебраическое равенство. Оператор Y = A + B означает для ЭВМ: сложить содержимое ячеек памяти, отведенных для размещения значений переменных А и В, и поместить результат в ячейку памяти, отведенную для значения переменной Y. В программировании широко используется конструкция оператора присваивания типа X = X + 1. К текущему значению переменной X прибавляется 1, и результат помещается в ту же ячейку, заменив бывшую там информацию на новую. С точки зрения математики равенство X = X + 1 не имеет смысла.
При присвоении переменным строковых значений их необходимо заключать в кавычки:
T = "Параметр 1",
а значения типа Дата/Время – заключать в символы # («решетка»):
D = #11/29/2010#.
