- •Министерство образования и науки российской федерации
- •Алгоритмизация и программирование на vba: структурное программирование
- •305040, Г. Курск, ул. 50 лет Октября, 94. Содержание
- •1Цель работы
- •2Общие сведения
- •2.1Структурное программирование
- •2.2Реализация подпрограмм на vba.
- •2.2.1Описание подпрограмм GoSub - Return
- •Синтаксис вызова и описания подпрограммы:
- •2.2.2Описание процедур и функций.
- •Области видимости имен
- •Время жизни переменной
- •Параметры
- •Описание процедур Синтаксис описания процедуры:
- •Синтаксис элемента СписокАргументов:
- •Описание функций Синтаксис описания функции:
- •2.2.3Вызов процедур и функций Вызов процедур Синтаксис вызова процедуры:
- •Вызов функций
- •Примеры Основные способы передачи параметров в процедуры.
- •Передача массива как параметра.
- •Использование необязательных параметров
- •Использование неопределенного количества параметров
- •2.2.4Рекурсивные процедуры и функции
- •2.2.5Использование функций пользователя в Excel
- •Алгоритм
- •Исходный текст
- •2.3.2Пример 2. Диагонали
- •Постановка задачи
- •Информационная структура задачи
- •Разработка алгоритма программы
- •Разработка исходного текста программы
- •Информационная структура задачи
- •Разработка алгоритма программы сортировки матрицы
- •Разработка исходного текста программы
- •Разработка алгоритма
- •Разработка исходного текста процедуры сортировки номеров строк в порядке возрастания минимальных значений.
- •Информационная структура задачи
- •Разработка алгоритма программы решения слау
- •Разработка исходного текста программы
- •Информационная структура
- •Разработка алгоритма
- •Разработка исходного текста процедуры
- •Процедура прямого хода.
- •Информационная структура
- •Разработка алгоритма
- •Разработка исходного текста процедуры
- •Процедура поиска главного элемента.
- •Информационная структура
- •Разработка алгоритма
- •Разработка исходного текста процедуры
- •Процедура обратного хода.
- •Информационная структура
- •Разработка алгоритма
- •Разработка исходного текста процедуры
- •6Варианты задач
- •7Список литературы
2.2Реализация подпрограмм на vba.
Средствами записи подзадач на язык программирования VBA являются подпрограммы, которые записываются однократно и в дальнейшем их выполнение вызывается из любой точки программы, где это необходимо. После того, как подпрограмма закончила своё выполнение, программа продолжает выполнение с той позиции, из которой была вызвана подпрограмма.
В VBA имеется три типа подпрограмм: процедуры, функции и подпрограммы «GoSub – Return». Каждый из типов имеет свои области применения и отличается особенностями описания и вызова.
2.2.1Описание подпрограмм GoSub - Return
В VBA от первоначальных версий BASIC сохранилась конструкция подпрограммы «GoSub – Return», которая в настоящее время используется редко. Для полноты изложения кратко приведены правила использования этой инструкции.
Синтаксис вызова и описания подпрограммы:
GoSub <Строка> [Инструкции программы] … <Строка> [Инструкции подпрограммы] Return
Строка - метка или номер строки. В качестве метки строки может быть любая удовлетворяющая правилам именования комбинация символов, заканчивающаяся двоеточием.
Допускается использование инструкций GoSub и Return в любом месте процедуры, но GoSub и соответствующая инструкция Return должны находиться в одной процедуре. Подпрограмма может содержать несколько инструкций Return. Первая обнаруженная инструкция Return осуществляет переход обратно – к инструкции, следующей за инструкцией GoSub, вызвавшей подпрограмму.
2.2.2Описание процедур и функций.
Процедура – поименованная изолированная часть программы.
Функция – процедура, определяющая зависимость возвращаемого значения от значений аргументов.
При использовании процедур и функций, VBA в соответствии с условиями структурного программирования особым образом организовывает работу с переменными и их значениями, которые применяются во всей программе, внутри процедуры, передаются в процедуру и возвращаются из процедуры в процессе её вызова.
Функция на VBA является разновидностью процедуры, отличающейся только тем, что когда требуется использовать возвращаемое значение, функция может применяться в правой части выражения, в то время как значения, возвращаемые процедурой, могут храниться только в переменных, указанных в списке фактических параметров и использоваться только в следующих за вызовом инструкциях. В то же время, если не требуется использовать возвращаемое значение функции, она может применяться в стиле процедуры.
Области видимости имен
Область видимости имени задает участки программы, в которых поименованный объект может быть использован. В VBA имеется три уровня области видимости:
Объекты уровня процедуры (локальные) используются только в процедуре или функции, в теле которой они описаны.
Объекты уровня модуля (глобальные) описываются в модуле вне процедур и функций и используются только в модуле, в теле которого они описаны.
Объекты уровня проекта (общие) используются во всех модулях данного проекта. Описываются в теле модуля вне процедур и функций при помощи инструкции Public.
Время жизни переменной
Локальная переменная сохраняет свое значение, пока выполняется процедура, в которой эта переменная описана. При завершении процедуры значение переменной теряется, и при повторном запуске процедуры переменную надо заново инициализировать.
Локальные статические переменные, описанные при помощи инструкции Static, сохраняют свое значение при выходе из процедуры, но пока работает программа. При этом видны они будут только после входа в процедуру.
Глобальные и общие переменные сохраняют свои значения в течение всего времени работы программы.
