Метод. по подпрограммам (vba) (811586)
Текст из файла
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИРОССИЙСКОЙ ФЕДЕРАЦИИФедеральное государственное бюджетное образовательное учреждениевысшего профессионального образования«МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ МАШИНОСТРОИТЕЛЬНЫЙУНИВЕРСИТЕТ (МАМИ)»/ УНИВЕРСИТЕТ МАШИНОСТРОЕНИЯ /А.Н. ЛюбинМ.Д. СилинПРОЦЕДУРЫ И ФУНКЦИИВ ЯЗЫКЕ ПРОГРАММИРОВАНИЯVISUAL BASIC FOR APPLICATIONУчебное пособиепо дисциплине «Информатика» и «Информационные технологии»для студентов всех направлений и специальностейОдобрено методической комиссиейпо направлению 230000 - «Информатика и вычислительная техника»Москва-20132УДК 681.3.06Разработано в соответствии с Государственным образовательным стандартом ВПО 2000 г. для специальности подготовки230201.65 на основе рабочей программы дисциплины «Информатика»Рецензенты: доцент, к.т.н., начальник управления образовательных программ Института информационных технологий И.А.Виноградова;к.т.н., профессор кафедры: «Информационные системы идистанционные технологии» Университета машиностроения А.И.Макаров.Учебное пособие подготовлено на кафедре«Информационные системы и дистанционные технологии»Учебное пособие ориентировано на изучение основ языкапрограммирования VISUAL BASIC FOR APPLICATION (VBA),а именно процедур и функций, как наиболее важных и наиболеетрудно усваиваемых функциональных блоков языка.
Предполагается, что студент знаком с основными операторами структурногопрограммирования на языке VBA В противном случае следует использовать приведённую в пособии литературу. При изучении языка данное пособие позволит более эффективно освоить указанныеего разделы и получить практические навыки при программировании.© Любин А.Н., Силин М.Д., 2013.© МГМУ (МАМИ), 2013.3СОДЕРЖАНИЕВВЕДЕНИЕ………………………………………………....41.ТЕОРЕТИЧЕСКАЯ ЧАСТЬ…………………………………..51.2.
ПРОЦЕДУРЫ…………………..………………………….….....51.2.1. ПРОЦЕДУРА ТИПА FUNCTION……...………………...51.2.2. ПРОЦЕДУРА ТИПА SUB………………...………………...141.3. СПОСОБЫ ПЕРЕДАЧИ АРГУМЕНТОВВ ПРОЦЕДУРЫ…………………………………………..191.4. ОБЛАСТЬ ДЕЙСТВИЯ ПРОЦЕДУР…………...…......231.5. ПРЕРЫВАНИЕ ПРОЦЕДУР…………………………....262. ПРАКТИЧЕСКАЯ ЧАСТЬ…………………………...…...…272.1. ПРИМЕРЫ ВЫПОЛНЕНИЯ ЗАДАНИЙ……………………....272.2. ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОГОВЫПОЛНЕНИЯ……………………………………..……....34ЛИТЕРАТУРА…………………………………………...…...….384ВВЕДЕНИЕПри программировании часто в алгоритме определённые однотипные фрагменты повторяются несколько раз. Например, неоднократное перемножение матрицы на вектор и тому подобное.
Такие фрагменты алгоритма целесообразно запрограммировать одинраз в виде подпрограммы и по мере необходимости обращаться кней, вызывать, столько раз, сколько требуется.Идея подпрограмм позволила снизить трудоёмкость написания программ в целом. Позволила, выделяя самостоятельные подзадачи, организовывать разделение работ над программой междупрограммистами с возможностью оперативной её корректировки.Появилась возможность создания и использования библиотек подпрограмм, целых банков подпрограмм.Обычно различают основную программу (программную единицу) т.е.
вызывающую программу и вызываемую программу, т.е.саму подпрограмму.При вызове подпрограммы, как правило, в неё передаютсяисходные данные в виде входных аргументов, параметров, а возвращаются в вызывающую программу результаты работы подпрограммы, в виде выходных параметров или аргументов. Таким образом, в основном, предстоит изучить, как объявить, организоватьподпрограмму, как вызвать подпрограмму, как передать в неё извызывающей программы входные параметры и как передать полученныё результата, выходные параметры, в вызывающую программу.51. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ1.2.
ПРОЦЕДУРЫДля VBA характерно понятие процедуры, что фактически тоже самое, что и подпрограмма. При этом, как и во многих другихтекстовых языках, различают два основных типа процедур:процедуру типа Sub (подпрограмма),процедуру типа Function (функция).Стоит отметить, что процедуру типа Sub часто называют просто процедурой, а процедуру типа Function – функцией.Процедуры — это самые важные функциональные блоки языка VBA. Как правило, программа на языке VBA состоит из нескольких процедур и функций.
Эти программные единицы хранятся в модулях. В свою очередь, модули как составные части входят впроекты. При вызове процедуры или функции, которая расположена в другом модуле, ее имя при вызове указывается следующимобразом: имяМодуля.имяПроцедуры. При вызове процедуры илифункции расположенной в другом проекте, следует использоватьсинтаксис: имяПроекта.имяМодуля.имяПроцедуры.1.2.1. ПРОЦЕДУРА ТИПА FUNCTIONПроцедурой типа Function формально называется фрагменттекста на языке VBA (программный код), заключенный междуключевыми словами Function и End Function, определяющимисоответственно начало и конец процедуры.Для объявления процедуры типа Function используется следующий синтаксис.Function Имя (список формальных аргументов) As тип( операторы)Имя = возвращаемое значениеEnd Function6КлючевоесловоFunctionопределяетпроцедурутипаFunction.
Далее задаётся Имя_процедуры - функции. Имя должнобыть уникальным, и задано согласно правилам задания имён переменных в языке VBA.В круглых скобках указывается список формальных аргументов, т. е. перечисляются через запятую параметры, которые передаются в процедуру типа Function из вызывающей её процедуры, ите – которые, в качестве результатов, нужно будет передать, вернуть в последнюю из вызванной процедуры после её выполнения.В качестве формальных аргументов могут использоватьсяимена переменных, констант, массивов и их элементов.
Причёмразличают входные формальные аргументы, которые передаются впроцедуру и выходные, которые передаются из неё в вызывающуюпроцедуру. Отметим, что список формальных аргументов не является обязательным параметром, он может отсутствовать.Ключевое слово As (как) и следующее за ним значение типопределяют тип переменной, которую передают (возвращают) ввызывающую процедуру - возвращаемое значение.
Задание типавозвращаемого значения является не обязательным. В этом случаесчитается, что возвращаемое значение имеет тип Variant [1].Параметр возвращаемое значение это значение переменной,имя которой требуется передать из вызываемой процедуры в вызывающую процедуру, и это имя должно быть тем же что и имяпроцедуры – функции, т.
е.Имя = возвращаемое значение.Здесь важно подчеркнуть, что возвращаемое значение через имяфункции может фигурировать в любом месте кода вызывающейпроцедуры, в том числе и в арифметических выражениях.7Вызов процедуры типа FunctionЧтобы использовать написанную процедуру ее нужно вызвать.Вызов (обращение) процедуры типа Function осуществляется по еёимени. Синтаксис обращения следующий.Имя (список фактических аргументов)Список фактических аргументов это перечисленные череззапятую имена переменных, констант, массивов и их элементов которые фигурируют в основной, вызывающей процедуре и передаются в процедуру Function, при её вызове, в качестве исходных,входных параметров. А также и те, которые передаются, возвращаются из вызванной процедуры Function обратно в вызывающуюпроцедуру в качестве выходных параметров. В списке фактическихаргументов могут быть записаны и выражения, в частности арифметические, которые вычисляются и полученное значение передается в подпрограмму как фактический аргумент.Формальные и фактические аргументы могут не совпадать поименам, но они должны совпадать по количеству, порядку следования, типу и длине (размеру отводимой памяти).Пример 1.
Написать программу вычисления S=(+,при A =2, k=4, B=3, m=2. Использовать процедуру типа Function.Листинг программы к примеру 1 и результат её работы представлены на рис. 1.Пояснения к программе.Основная, вызывающая процедура имеет имя ФУНКЦИЯ.Процедуру типа Function имеет имя S и у неё два формальных аргумента X и N, которые являются входными аргументами. В основной процедуре имеется два обращения к процедуре S, причём припервом обращении в качестве фактических параметров указаны8имена переменных A и K, а при втором- B и m.
При первом обращении на место формальных аргументов X и N передаются фактические аргументы A и K, которые и участвуют в вычислении. Результат вычисления X^N присваивается имени процедуры, а именно переменной S, которая возвращается в вызывающую процедуру– ФУНКЦИЯ. Аналогичные действия происходят и при второмобращении к процедуре S. Результаты вычислений суммируются ввызывающей процедуре ФУНКЦИЯ и присваиваются переменнойY, которая выводиться в окно функции МsgBox.Рисунок 1.- Листинг программы к примеру 1 и результат её работы.Исходные данные можно указывать непосредственно в обращении к процедуре Function.
Тогда в качестве фактических аргументов в обращении к процедуре будут фигурировать не переменные, а константы. В этом случае вариант составления программы,к примеру 1, будет выглядеть как на рис. 2.9Рисунок 2 .- Вариант программы к примеру 1.Фактически аргументы представлены в виде констант.Основное достоинство в использовании процедуры типа Function заключается в том, что она может вызываться в любом местепрограммного кода, где может быть явно указано возвращаемоезначение, как в приведённом выше примере.Вызвать процедуру типа Function можно и с помощью специального оператора Call (вызвать). Синтаксис такой формы вызоваследующий.Call Имя (список фактические аргументы)Имеется эквивалентная оператору Call форма вызова процедуры типа Function, отличающаяся только синтаксисом, а именно:Имя процедуры список формальных аргументовОднако при таких формах вызова отмеченное выше достоинство процедуры типа Function теряется, см.
код к примеру 1 представленный на рис. 3.Рисунок 3 .- Вариант программы к примеру 1.Формы обращения к процедуре S.10Видно, что предпочтительнее код, представленный на рис. 2,так как в нём вызов процедуры S и подстановка результата её работы происходит непосредственно в выражение для вычисления Y.При обращении к процедуре типа Function с помощью указанных форм приведенный выше пример 1 может быть реализованв программном коде следующим образом см.
рис. 4Рисунок 4 .- Вариант программы к примеру 1.Фактически аргументы представлены в виде имён переменных.При использовании оператора Call указывается имя процедуры, в данном примере это переменная S, см. приведённый вышелистинг программы. Затем в скобках через запятую указываетсясписок фактических аргументов, а именно А, K и Y1, среди которых А и K входные фактические аргументы, а переменная Y1- выходной фактический аргумент, результат. При вызове процедуры11типа Function указанные входные фактические аргументы, а именно А и K передаются в процедуру S на места входных формальныхаргументов, а именно Х и N.
Далее в процедуре производятся вычисления для переданных в неё входных фактических аргументов Аи K.Полученный в процедуре результат записан в переменную сименем REZ, которая является выходным формальным аргументом. Значение переменной REZ помещается в переменную Y1,которая является выходным фактическим аргументом и которая передается в вызывающую процедуру с именем ФУНКЦИЯ. Аналогичные действия производятся и при повторном обращении к процедуре типа Function с именем S. В основной, вызывающей процедуре ФУНКЦИЯ происходит суммирование полученных результатов - Y1 и Y2, запись их суммы в переменную Y и вывод её в окнофункции МsgBox.Имеется эквивалентный оператору Call вызов, обращение кпроцедуре типа Function, отличающийся только синтаксисом, аименно:Имя процедуры список формальных аргументовВ рассмотренном примере данная форма вызова процедуры Sбудет выглядеть так: S A, K ,Y1 - при первом обращении к процедуре и S 3, 4 ,Y1- при втором обращении, см.
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.