Синтаксис процедуры и функции
Общие сведения о языке VBA
VBA – это универсальный объектно-ориентированный язык программирования основных приложений Windows (в данной работе это приложение MS Office – электронная таблица MS Excel). Это означает, что все элементы в среде MS Excel рассматриваются как объекты, а не абстрактное множество структур данных или пикселей на экране. Каждый объект является контейнером для всех объектов внутри него (если они имеются). Наибольший объект (или главный объект) – само приложение MS Excel (Application), содержащее все другие объекты. Благодаря VBA появляется возможность значительно расширить набор функций в Excel, а также создавать функции, значения которых зависят от некоторых условий и событий. Для организации диалоговых программ в VBA используются Формы (это сложная программа интерфейс, которой организован в виде окна Windows). Есть программы, которые не имеют окон, например, программы – вирусы. Форма (или окно Windows) – основной строительный блок, который используется для создания диалоговой программы. Форма – это место, где размещаются все элементы, с которыми взаимодействуют пользователи программы. Эти элементы называются активными элементами управления (ActiveX) или просто элементами управления. Эти элементы управления позволяют вводить данные, отображать текстовую или графическую информацию, подавать команды посредством кнопок, осуществлять выбор заранее определенных параметров посредством различных кнопок или переключателей. Элементы управления разделяются на внутренние (встроенные, которые поставляются с VBA) и внешние (дополнительные, разработанные сторонними разработчиками для решения специальных задач). В методических указаниях к лабораторной работе, из-за их ограниченного объема, рассматриваются только некоторые встроенные элементы управления.
Основные синтаксические принципы языка VBA Операторы Оператор – это наименьшая способная выполняться единица кода VBA. Оператор может объявлять или определять переменную, устанавливать параметр компилятора VBA или выполнять какое-либо действие в программе. Арифметические операторы: +, −, *, /, ^, \ (целочисленное деление), Mod (деление по модулю). Оператор присваивания − это знак равенства (=). Не путать знак равенства с оператором равенства. Операторы сравнения: = (равенство), <, >, >=, <=, <>, Is (сравнение объектов), Like (подобие объектов). Логические операторы: And (И), Or (ИЛИ), Not (отрицание), Xor (исключающие ИЛИ), Eqv (эквивалентность), Imp (импликация). Помнить нужно про And, Or, Not, остальные логические операторы используются редко. Оператор конкатенации, т.е. слияния строковых значений − & (амперсанд). При использовании (&) производится автоматическое преобразование числовых значений в строковые значения.
Переменные и типы данных Переменные − это контейнеры для хранения изменяемых данных. Перед работой с переменной необходимо ее объявить (определить область видимости переменной). Это осуществляется с помощью ключевых слов: Dim, Private, Public, Statc. Dim − используется для объявления области видимости переменной в модуле или процедуре (только на время ее работы). Private − при объявлении переменных в стандартных модулях VBA значит то же, что и Dim. Public − такая переменная будет доступна всем процедурам во всех модулях данного проекта, если вы объявили ее в области объявлений модуля. Static − такие переменные можно использовать только внутри процедуры. Если нет никаких особых требований, то имеет смысл всегда выбирать область видимости Dim. Имя (идентификатор) переменной, константы, процедуры, функции и т.п.:
- имя должно начинаться с буквы; - не должно содержать пробелов и символов пунктуации (исключение символ подчеркивания (а_а); - максимальная длина имени − 255 символов; - имя должно быть уникальным в текущей области видимости переменной; - в имени нельзя использовать зарезервированные слова.
Типы данных содержащихся в языке VBA:
Принципы выбора типа данных для переменных: - выбирайте наименьший тип данных, который может вместить выбранные вами значения. Если есть, какие-то сомнения − выбирайте больший тип во избежание возникновения ошибок; - если есть возможность, лучше не использовать типы данных с плавающей запятой (Single и Double). Работа с ними производится медленнее, кроме того, могут быть проблемы при сравнениях за счет округлений; - если при объявлении переменной не указан ее тип в этом случае переменной автоматически будет присвоен тип Variant; - объявлять переменные с указанием их типа нужно обязательно − это существенно сокращает количество ошибок. При присвоении значений переменным нужно помнить о следующем: - строковые значения всегда заключаются в двойные кавычки, например SaVar1 = “Студент”; - значение дата/время заключается в символы “решетка” (#), например, DgVar2 = #05/06/2004#.
В переменных до присвоения им значений пользователем содержится: - в переменных всех числовых типов данных − 0; - в строковых переменных переменной длины − “ ” (строка нулевой длины); - в строковых переменных фиксированной длины − строка заданной длины с символами ASCII 0 (эти символы на экран не выводятся); - в Variant − специальное пустое значение Empty.
Синтаксис процедуры и функции Процедуры − это самые важные функциональные блоки языка VBA. В VBA вы можете выполнить только тот программный код, который содержится в какой-либо процедуре (обычной в стандартном модуле, событийной для элемента управления на форме и т.п.). В VBA предусмотрены следующие типы процедур: - процедура типа Sub (подпрограмма) − универсальная процедура для выполнения каких-либо действий. Макрос в VBA − это процедура типа Sub, не имеющая параметров. Только макросы можно вызывать по имени из редактора VBA или из приложения MS Office. Все другие процедуры нужно вызывать либо из других процедур, либо специальными способами; - процедура типа Function (функция) − набор команд, которые должны быть выполнены. Принципиальное отличие только одно: функция возвращает вызвавшей ее программе (или процедуре) какое-то значение, которое будет там использовано. Область видимости процедур определяется теми же ключевыми словами, что и для переменных. Синтаксис процедуры Sub ИмяПроцедуры() Dim <имя_переменной_1> As <тип_переменной> ...................... Тело процедуры End Sub Синтаксис функции Function ИмяФункции(<переменные> As <тип_переменной>) Тело функции ИмяФункции = <значение_функции> End Function
Ввод и вывод данных Рассмотрим как осуществляется ввод и вывод данных на примере табличного процессора MS Excel.
1 способ: Ввод и вывод данных с помощью диалоговых окон Окно для ввода данных InputBox (“текст в окне”, “заголовок окна”, “имя вводимой переменной”) Пример: Sub Поцедура() Dim x as single Dim y as single x = InputBox(“Введите x”, “Окно ввода”, x)
y = x ^ 2 End Sub
Окно для вывода сообщений MsgBox (данные для вывода) Пример: Sub Процедура() Dim x as single Dim y as single x = InputBox(“Введите x”, “Окно ввода”, x) y = x ^ 2 MsgBox(y) End Sub
2 способ: Ввод и вывод данных из ячеек таблицы MS Excel осуществляется с помощью команды Range (“имя ячейки”). Value Пример: Sub Процедура() Dim x as single Dim y as single x = Range(“A1”).Value y = x ^ 2 Range(“B1”).Value = y End Sub
Операторы VBA – операторный язык, поэтому его программы представляют собой последовательности операторов.
Оператор комментария Комментарии не влияют на исполнения программ. Они необходимы для пояснения исходных текстов программ. Оператором комментария является одинарная кавычка «‘». Комментарий может располагаться на отдельной строке или в конце строки.
Пример: Sub Первая процедура () ‘ Раздел описания переменных Dim y as single, Dim n as byte Тело процедуры End Sub Условный оператор If … Then …Else … End If Это оператор позволяет выбирать и выполнять действия в зависимости от истинности некоторого условия. Синтаксис: If <условие > Then <операторы 1> Else <операторы 2> End If Работа оператора Во первых, проверяется условие, идущее после ключевого слова If. Если условие истинно, то выполняется группа <операторов 1 >, идущая после ключевого слова Then, если условие ложно, то выполняется группа <операторов 2 >, идущая после ключевого слова Else. Пример: x = 4 If x>1 then y = x ^ 2 Else y = x + 15 End if В результате выполнения оператора If y примет значение 16, т.к. условие 4 > 1является истинным.
Операторы цикла Цикл For – Next Позволяет повторять группу операторов заданное число раз. Синтаксис: For CчетчикЦикла = начало TO конец [Step шаг ] Тело цикла Next СчетчикЦикла
Описание и работа оператора СчетчикЦикла – числовая переменная. В начале выполнения цикла она принимает значение, задаваемое числовым выражением начало. Числовое выражение конец задает заключительное значение счетчика цикла. Оно задается в начале выполнения цикла и не меняется в течение его выполнения. Числовое выражение шаг не обязательно. Его значение также определяется в начале цикла и прибавляется к счетчику цикла всякий раз, когда завершается выполнения тела цикла и вычисления достигают строки next. Если шаг цикла не указан, то его значение считается равным 1. Тело цикла – это последовательность операторов, которая будет выполнена заданное число раз. Цикл завершится, когда счетчик цикла станет больше значения конец.
Пример: s=0 For i = 1 To 3 s = s+ i Next i Начальное значение счетчика равно 1, конечное значение равно 3, шаг равен 1, следовательно, операторы тела цикла выполнятся 3 раза. После выполнения этого оператора переменная S примет значение S=1+2+3=6.
Цикл Do While– Loop Синтаксис: Do While <условие> Тело цикла Loop Описание и работа оператора Повторяет блок операторов, пока заданное условие не станет ложным (или пока условие является истинным). Условие – это числовое или строковое выражение, принимающее значение Истина (1) или Ложь (0). Тело цикла – это последовательность операторов, которая выполняется пока условие остается истинным. Тело цикла должно содержать оператор, который приводит в итоге к ложности условия, в противном случае цикл будет работать бесконечно. Пример: s = 0 i = 1 Do While i<=3 s =s + i i = i + 1 Loop
Встроенные функции VBA Встроенные функции VBA образуют основу, позволяющую пользователю не задумываться над реализацией некоторых часто встречающихся стандартных действий.
Математические функции Abs (число) модуль (абсолютная величина) числа Atn (число) арктангенс угла в радианах Cos (число) косинус угла в радианах Exp (число) Экспонента ex Log (число) натуральный логарифм числа Sin (число) синус угла в радианах Sqr (число) квадратный корень Tan (число) тангенс угла в радианах число1 mod число2 Остаток от деления числа1 на число2 число1 \ число2 Целая часть от деления числа1 на число2 число p (3,14159265) Dim Pi As Double Pi = 4 * Atn(1)
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|