Public function ИМЯ_ФУНКЦИИ(список параметров)

Sub pr()

Dim a, b, s, p, r As Single

a = CSng(InputBox("Введите число"))

b = CSng(InputBox("Введите число"))

s = a + b

p = a * b

r = a - b

MsgBox s

MsgBox p

MsgBox r

End Sub



№2 Макросы и язык программирования Visual Basic for Application.

Независимо от используемых вами операционной системы и программных приложений вы часто выполняете одни и те же последовательности команд для многих рутинных задач. Вместо повторения последовательности команд каждый раз, когда вам необходимо выполнить какую-либо задачу, вы можете создать макрос (macro), который вместо вас будет выполнять эту последовательность. Макросы позволяют вводить одиночную команду, выполняющую ту же задачу, для реализации которой вам было бы необходимо вводить несколько команд вручную.

Макросы, кроме удобства, имеют и другие преимущества. Поскольку компьютеры больше приспособлены для выполнения повторяющихся задач, чем люди, запись макрорекордером неоднократно выполняемых команд повышает точность и скорость работы. Другим преимуществом использования макросов является то, что при их выполнении обычно нет необходимости в присутствии человека-оператора.

Макрорекордер (или просто «рекордер») записывает все действия пользователя, включая ошибки и неправильные запуски. Когда программа воспроизводит макрос, она выполняет каждую записанную рекордером команду точно в такой последовательности, в которой вы их выполняли во время записи.

Записанные макрорекордером макросы лишены гибкости, поэтому они не могут реагировать на изменившиеся или меняющиеся условия. Законченный макрос сохраняется как процедура VBA. На языке VBA вы можете написать макрос, который проверяет соответствие различным предопределенным условиям и выбирает соответствующую последовательность действий на основе этих условий. Что касается повторяющихся действий в самом макросе, записанные рекордером макросы имеют значительные ограничения. Если вам необходимо, чтобы записанный макрос повторял какое-либо действие несколько раз, вы должны вручную повторять это действие нужное количество раз, когда записываете макрос. Такой макрос всегда повторяет это действие одинаковое количество раз, всякий раз, когда вы его запускаете, до тех пор, пока вы не отредактируете или не перезапишете его.

Кроме улучшения определенных макросов, записанных макрорекордером, вы можете использовать VBA для соединения, организации и управления несколькими записанными макросами, с помощью которых вы выполняете сложную общую задачу, состоящую из нескольких меньших задач.

Dim x, y, p As Single

x = CSng(InputBox("Введите число"))

y = CSng(InputBox("Введите число"))

p = (Abs(x) - Abs(y)) / (1 + Abs(x * y))

MsgBox p

End Sub




№3 Основные понятия объектно-ориентированного программирования.

ООП - новая технология программирования, основанная на моделировании реального мира, при котором детали его реализации скрыты; либо взгляд на программирование, основанный на данных, в котором данные и поведение жестко связаны.

Классы.

Класс - это абстрактное понятие, сравнимое с понятием категория в его обычном смысле.

Класс в ООП - это абстрактный тип данных, который включает в себя не только данные, но и функции и процедуры.

Функции и процедуры класса называются методами и содержат исходный код, предназначенный для обработки внутренних данных объекта данного класса.

Наследование.

Классы содержат данные и методы. В ООП методы и данные одного класса могут передаваться другим классам, т.е. объекты могут наследовать свойства друг друга. Класс наследует свойства другого класса, обладает теми же возможностями, что и класс, от которого он порожден. Этот принцип называется наследованием (inheritance).

Инкапсуляция.

Инкапсуляция (encapsulation) - объединение данных с функциями, предназначенными для манипулирования этими данными (т.е. поведением) в новом типе - КЛАССЕ .

Полиморфизм.

Полиморфизм - многоформенность механизм, позволяющий использовать одинаковые имена для сходных по смыслу действий и методов, относящихся к различным объектам (типам и классам).

Это означает, что один и то же метод выполняется по разному для различных объектов.

Sub pr()

Dim x, y, p, s As Single

x = CSng(InputBox("Введите число"))

y = CSng(InputBox("Введите число"))

s = (x + y) / 2

p = (x * y) / 2

MsgBox s

MsgBox p

End Sub



№4 Элементы проекта Visual Basic for Application. Интегрированная среда разработки.

Редактор VBA активизируется командой Сервис/Макросы/Редактор Visual Basic. Интерфейс VBA состоит из следующих основных компонентов: окна проекта, окна свойств, окна редактирования кода, окна форм, меню и панели инструментов.

Окно проекта в редакторе VBA активизируется выбором команды Вид/Окно проекта или нажатием кнопки Окно проекта. В окне проекта представлена иерархическая структура файлов форм и модулей текущего проекта.

В проекте автоматически создается модуль для каждого рабочего листа и для всей книги. Кроме того создаются модули для каждой пользовательской формы, макросов и классов.

Окно редактирования кода служит в качестве редактора для ввода и изменения кода процедур приложения. Код внутри модуля организован в виде отдельных разделов для каждого объекта, программируемого в модуле. В окне редактирования доступны два режима представления кода: просмотр отдельной процедуры и всего модуля. Переключение режимов работы окна редактирования кода осуществляется выбором одной из двух кнопок в нижнем левом углу окна редактирования кода. Написание кода программ значительно облегчается за счет способности редактора кода автоматически завершать написание операторов, свойств и параметров. При написание кода редактор сам предлагает пользователю список компонентов, логически завершающую вводимую пользователем инструкцию. Редактор кода также производит автоматическую проверку синтаксиса набранной строки кода сразу после нажатия клавиши Enter.

Для создания диалоговых окон разрабатываемых приложений в VBA используются формы. Редактор форм является одним из основных инструментов визуального программирования. Форма в проект добавляется с помощью команды Вставка/Форма. В результате на экран выводится незаполненная форма с панелью инструментов Панель элементов. Используя панель элементов из незаполненной формы, можно сконструировать любое требуемое для приложения диалоговое окно.

В окне свойств перечисляются основные установки свойств выбранной формы или элемента управления. Используя это окно, можно просмотреть свойства и изменить их установки. Окно свойств состоит из двух частей: верхней и рабочей. В верхней части окна свойств располагается раскрывающийся список, из которого можно выбрать любой элемент управления текущей формы или саму форму. Рабочая область состоит из двух вкладок: По алфавиту и По категориям, отображающих набор свойств в алфавитном порядке и по категориям.

Окно Просмотр объектов вызывается командой Вид/Просмотр объектов. В этом окне приведен список всех объектов, которые имеются в системе и которые можно использовать при создании проекта.

Sub pr()

Dim x, y, p As Single

x = CSng(InputBox("Введите число"))

y = CSng(InputBox("Введите число"))

p = Sqr(x ^ 2 + y ^ 2)

MsgBox p

End Sub



№ 5 Отладка программ и поиск ошибок в проекте Visual Basic for Application.

Ошибки синтаксиса

Синтаксисом (syntax) – называется определенный порядок слов и символов, который образует правильный оператор VBA. Некоторые из наиболее общих ошибок, с которыми вы сталкиваетесь во время написания или редактирования процедур VBA, – это ошибки синтаксиса (syntax errors), например, пропущенные запятые, кавычки, аргументы и так далее.

Всякий раз, когда вы пишете новую строку кода или изменяете существующую, VBA анализирует (parses) строку, как только курсор вставки перемещается из новой или измененной строки. Синтаксический анализ (parsing) – так называется процесс разбивки оператора VBA на составляющие части и определение того, какие части строки являются ключевыми словами, переменными или данными. После выполнения анализа строки кода VBA компилирует эту строку кода. Компиляция (compiling) в VBA означает составление исходного кода в форме, которую VBA может непосредственно выполнять без необходимости снова анализировать код.

После того как VBA успешно завершит анализ и компиляцию строки кода в процедуре и не будет обнаружено никаких ошибок, выполнится цветовое кодирование различных частей строки (Помните, ключевые слова в Редакторе VB отображаются синим цветом, комментарии – зеленым, а данные или другие операторы отображаются в виде черного текста). Если, однако, VBA обнаруживает ошибку синтаксиса в строке в процессе анализа или компиляции, VBA отображает всю строку красным цветом и выводит на экран диалоговое окно с сообщением об ошибке.

Ошибки времени исполнения

Вы можете создать синтаксически правильный оператор VBA, который все же не выполняется правильно. Ошибки, которые выявляются только при фактическом выполнении процедуры, называются ошибками времени исполнения (runtime errors) или runtime ошибками. Существуют различные типы таких ошибок. Они обычно вызваны пропуском аргументов процедуры, аргументами неверного типа данных, пропуском ключевых слов, попытками доступа к несуществующим драйверам диска и папкам каталога или ошибками в логике..

Sub pr()

Dim l, r, s As Single

l = CSng(InputBox("Введите число"))

r = l / 2 * 3.14

s = 2 * 3.14 * r ^ 2

MsgBox s

End Sub



№ 6 Типы данных в Visual Basic for Application.

Тип: Byte 1байтЦелые положительные числа от 0 до 255

Integer 2 байтаЦелые числа от -32768 до 32767

Long 4 байтаДлинные целые числа от -2147483648 до 2147483647

Single 4 байтаВещественные числа обычной точности с плавающей точкой. Отрицательные числа: от -3.402823Е38 до -1.401298Е-45. Положительные числа: от 1.401298Е-45 до 3.402823Е38

Double 8 байтВещественные числа двойной точности с плавающей точкой. Отрицательные числа: от -1.79769313486232Е308 до -4.94065645841247Е-324. Положительные числа: от 4.94065645841247Е-324

Boolean 2 байтаДля хранения логических значений; может содержать только значения True (Истина) или False (Ложно)

Date 8 байтДля хранения комбинации информации о дате и времени. Диапазон дат может быть от 1 января 100 года до 31 декабря 9999 года. Диапазон времени от 00:00:00 до 23:59:59

String (строка переменной длины) 10 байт + длина строки Используется для хранения текста. Может содержать от 0 символов до (приблизительно) 2 миллиардов символов

String (строка фиксированной длины) Длина строки (один байт на один символ) Используется для хранения текста. Может содержать от одного до (приблизительно) 65400 символов

Variant 16 байт + 1 байт/символ Тип Variant может хранить любой другой тип данных. Диапазон для данных типа Variant зависит от фактически сохраняемых данных. В случае текста диапазон соответствует строковому типу; в случае чисел диапазон такой, как у типа Double

Object 4 байтаИспользуется для доступа к любому объекту, распознаваемому VBA. Сохраняет адрес объекта в памяти

Sub pr()

Dim x, y As Single

x = CSng(InputBox("Введите число"))

y = CSng(InputBox("Введите число"))

If x > y Then

MsgBox x

End If

If y > x Then

MsgBox y

End If

End Sub



№ 7 Переменные, константы в Visual Basic for Application.

Переменная – это имя, которое разработчик программы дает области компьютерной памяти, используемой для хранения данных какого-либо типа. Переменная представляет числа, текстовые данные или другую информацию, которая точно не известна во время написания оператора, но будет в наличии и доступна при выполнении этого оператора.

Идентификатор – это имя переменной. При выборе имени переменной необходимо соблюдать следующие правила:

1.имя переменной должно начинаться с буквы алфавита;

2.после первой буквы имя переменной может состоять из любой комбинации цифр, букв или символов подчеркивания;

3.имена переменных не могут содержать символов, используемых для математических операций, а также знака точки и пробела;

4.имя переменной не должно превышать 255 символов;

5.имя переменной не должно дублировать определенные ключевые слова vba.

Самым простым способом создания переменной является использование ее в операторе VBA. VBA создает переменную и тут же резервирует ячейку памяти для данной переменной.

Сохранение значения данных в переменной называется присваиванием переменной.

Создание переменной путем ее использования в операторе называется неявным объявлением переменной. Все переменные, которые VBA создает неявным объявлением переменной, имеют тип данных Variant.

VBA предоставляет возможность выполнять явное объявление переменных. Объявлять переменные явно лучше в начале программы, как это делается во всех языках программирования.

Явно объявить переменную можно как в начале блока, так и в том произвольном месте, где возникла необходимость использовать новую переменную. При объявлении переменной определяются ее тип и область видимости – область, где имя переменной видимо и, значит, возможен доступ к ее значению. Переменные можно объявлять на двух уровнях – уровне процедуры и уровне модуля.

Для объявления переменных используются операторы Dim, Public, Private и Static. Первый можно использовать на обоих уровнях, Public, Private – на уровне модуля, Static – только на уровне процедуры.

Объявление простых переменных имеет следующий синтаксис: Dim <имя переменной1, имя переменной2,…> As <имя типа> или Dim <имя переменной1> As <имя типа1>, <имя переменной2> As <имя типа2>,<имя переменной3> As <имя типа3>, …

Константа – это значение в программе VBA, которое не меняется. Существует несколько типов констант.

Именованные константы – константы, имеющие заданное имя; это имя имеет конкретное неизменяемое значение.

В отличие от переменной, необходимо всегда явно объявлять именованные константы, используя ключевое слово Const.

Sub pr()

Dim x, y As Single

x = CSng(InputBox("Введите число"))

y = CSng(InputBox("Введите число"))

If x < y Then

MsgBox x

End If

If y < x Then

MsgBox y

End If

End Sub



№ 8 Арифметические операции и операции сравнения в Visual Basic for Application.

Знак + СинтаксисN1 + N2 Сложение. Прибавляет N1 к N2

Знак – СинтаксисN1 - N2 Вычитание. Вычитает N2 из N1

Знак * СинтаксисN1 * N2 Умножение. Умножает N1 на N2

Знак / СинтаксисN1 / N2 Деление. Делит N1 на N2

Знак\СинтаксисNl \ N2 Целочисленное деление. Делит N1 на N2, отбрасывая любую дробную часть так, чтобы результат был целым числом.

N1 ^ N2Возведение в степень. Возводит N1 в степень N2.

Операции сравнения

Операции сравнения иногда также называют операциями отношения (relational operators). Чаще всего операции сравнения используются для того, чтобы задать критерии для принятия решения или сформулировать описание условий, при которых группа команд должна быть повторена (организация циклов).

Результатом любой операции сравнения является значение типа Boolean: Trueили False. Операции сравнения используются для сравнения литеральных, константных или переменных значений любого сходного типа

Оператор ^ Синтаксис Е1= Е2 Равенство. True, если El равно Е2, иначе – False

Оператор< СинтаксисEl < Е2 Меньше, чем. True, если El меньше, чем Е2, иначе – False

Оператор> СинтаксисEl > Е2 Больше, чем или равно. True, если Е1 больше или равно Е2, иначе – False

Оператор > СинтаксисEl > Е2 Больше, чем. True, если Е1 больше, чем Е2, иначе – False

Оператор<>СинтаксисEl <> Е2 Не равно. True, если Е1 не равно Е2, иначе – False

Sub pr()

Dim a, b, c As Single

a = CSng(InputBox("Введите число"))

b = CSng(InputBox("Введите число"))

c = CSng(InputBox("Введите число"))

If (a > c) And (b > c) Then

a = 2 * a

b = 2 * b

c = 2 * c

Else

a = Abs(a)

b = Abs(b)

c = Abs(c)

End If

MsgBox a

MsgBox b

MsgBox c

End Sub



№ 9 Логические операции. Приоритет выполнения операций.

Логические операторы

Чаще всего логические операторы VBA используются для объединения результатов отдельных выражений сравнения, чтобы создать сложные критерии для принятия решений в процедуре, или для создания условий, при которых группа операторов должна повторяться

ОператорAnd СинтаксисEl And E2 Конъюнкция. True, если оба Е1 и Е2 имеют значение True, иначе – False

ОператорOr СинтаксисEl Or E2 Дизъюнкция. True, если одно выражение или оба (Е1 и Е2) являются равными True; иначе – False

ОператорNot СинтаксисNot El Отрицание. True, если Е1 имеет значение False; False, если El является равным True

ОператорXor СинтаксисEl Xor E2 Исключение. True, если Е1 и Е2 имеют разные значения; иначе – False

Оператор Eqv СинтаксисEl Eqv E2 Эквивалентность. True, если Е1 имеет то же самое значение, что и Е2; иначе – False

Оператор Imp СинтаксисEl Imp E2 Импликация. False, когда Е1 является равным Trueи Е2 равно False; иначе — True.

Иерархия операторов/операций от наивысшего до самого низкого приоритета

Оператор лВозведение в степень, наивысший приоритет

Оператор —Унарный минус

Оператор*, / Умножение и деление имеют равные приоритеты; они вычисляются по мере появления в выражении слева направо

Оператор\ Mod

Оператор+, - Сложение и вычитание имеют равный приоритет; они вычисляются по мере появления в выражении слева направо

Оператор& Всякая конкатенация строк выполняется после любых арифметических операций в выражении и перед любыми операциями сравнения или логическими операциями

ОператорLike, =, о, Is Все операторы сравнения имеют равные приоритеты и вычисляются по мере появления в выражении слева направо. Используйте круглые скобки для группирования операторов сравнения в выражениях

ОператорNot And Or Xor Eqv Imp

Sub pr()

Dim x, y, z As Single

x = CSng(InputBox("Введите число"))

y = CSng(InputBox("Введите число"))

If x > y Then

z = x - y

Else

z = y - x + 1

End If

MsgBox z

End Sub



№ 10 Пользовательские процедуры и функции в Visual Basic for Application.

Процедуры - это небольшие по объему программы, включаемые в состав общей прикладной программы. Обычно любая прикладная программа состоит из нескольких процедур, но как минимум в ней должна содержаться одна, которая является главной или управляющей процедурой, поэтому ей присваивают имя Main().

Каждая процедура начинается с оператора объявления и заканчивается указателем конца процедуры:

Тип Sub Имя_Процедуры(Аргументы)

Операторы тела процедуры

End Sub

Оператор объявления процедуры присваивает ей имя, отмечает ее начало и перечисляет аргументы, значения которых передаются процедуре из вызвавшей ее программы. Тип указывает уровень доступа к процедуре - открытый, т.е. Public или ограниченный, т.е. Private.

Оператор End Sub отмечает конец процедуры.

Все операторы, которые располагаются между операторами объявления и окончания процедуры составляют тело процедуры. Данная совокупность операторов позволяет решить поставленную при вызове процедуры подзадачу и получить результат. Список Аргументов обеспечивает связь между вызывающей и вызываемой процедурами и предназначены для получения и передачи значений специальных переменных. Значения глобальных переменных таким способом не передаются, так как они доступны всем процедурам программы.

Общий вид функции пользователя:

Public function ИМЯ_ФУНКЦИИ(список параметров)

ТЕЛО_ФУНКЦИИ

End Function

Тело функции состоит из описательной части и блока операторов выполняющихся друг за другом. Имя функции может иметь любой идентификатор. Возвращаемое функцией пользователя значение присваивается имени функции. Поэтому в теле функции пользователя, вычисляющей некоторое значение, должен присутствовать по крайней мере один оператор, присваивающий имени функции значение какого-либо выражения.

Sub pr()

Dim x, y, z As Single

x = CSng(InputBox("Введите число"))

y = CSng(InputBox("Введите число"))

If x > y Then

MsgBox x

Else

MsgBox x

MsgBox y

End If

End Sub



№ 11 Математические функции в Visual Basic for Application.

ФункцияAbs(N) Возвращает абсолютное значение N

Cos(N) Косинус угла N, где N – это угол, измеренный в радианах

Sin(N) Возвращает синус угла; N – это угол, измеренный в радианах

Tan(N) Возвращает тангенс угла; N – угол в радианах

Atn(N) Возвращает арктангенс N как угол в радианах

Exp(N) Возвращает константу е, возведенную в степень N (е – это основание натуральных логарифмов и она (приблизительно) равна 2,718282)

Fix(N) Возвращает целую часть N. Fix не округляет число, а отбрасывает любую дробную часть. Если N является отрицательным, Fix возвращает ближайшее отрицательное целое большее, чем или равное N

Int(N) Возвращает целую часть N. Int не округляет число, а отбрасывает любую дробную часть. Если N является отрицательным, Int возвращает ближайшее отрицательное целое меньшее, чем или равное N

Log(N) Возвращает натуральный логарифм N

Rnd(N) Возвращает случайное число; аргумент является необязательным. Используйте функцию Rnd только после инициализации VBA-генератора случайных чисел оператором Randomize

Sgn(N) Возвращает случайное число; аргумент является необязательным. Используйте функцию Rnd только после инициализации VBA-генератора случайных чисел оператором Randomize

Sqr(N) Возвращает корень квадратный из N. VBA отображает ошибку времени исполнения, если N – отрицательное

Sub pr()

Dim s, i As Integer

s = 0

For i = 1 To 10 Step 1

s = s + i

Next i

MsgBox s

End Sub



№12 Функции преобразования данных в Visual Basic for Application.

Наши рекомендации