44

Vba программы

Embed Size (px)

Citation preview

Page 1: Vba программы
Page 2: Vba программы

Тема:Тема:

ВыходВыход

Page 3: Vba программы

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

Программы на языке VBA создаются в виде процедур.

ВыходВыход

Page 4: Vba программы

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

Инструкция – представляет собой операцию (отдельное действие), описание или определение.

ВыходВыход

Page 5: Vba программы

Инструкция VBA является полной командой и может содержать:

1.ключевые слова - слова или символы, распознаваемые как элемент VBA;

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

для временного хранения данных, которые могут изменяться во время выполнения программы;

4.константы - именованный элемент сохраняющий постоянное неизменное значение в процессе выполнения программы;

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

ВыходВыход

Page 6: Vba программы

Инструкции могут быть следующих типов:

• инструкции описания - именуют переменные, константы или процедуры, а также могут задавать типы данных;

• инструкции присвоения - присваивают значение или выражение переменной или константе;

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

ВыходВыход

Page 7: Vba программы

Для пояснения процедуры или определенной инструкции используются комментарии, при выполнении процедуры они игнорируются.

Их можно вносить в любое место процедуры, начиная с апострофа (') или со слова Rem, за которым следует пробел.

ВыходВыход

Page 8: Vba программы

Совокупность созданных пользователем и хранящихся совместно процедур составляют модуль.

В документе или рабочей книге допускается любое количество модулей.

ВыходВыход

Page 9: Vba программы

VBA позволяет создавать такие типы процедур как:

1.процедуры-подпрограммы,2.процедуры-функции.

ВыходВыход

Page 10: Vba программы

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

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

Ключевое слово End Sub говорит об окончании подпрограммы. Строки, заключенные между этими двумя ключевыми словами, составляют тело процедуры.

ВыходВыход

Page 11: Vba программы

Синтаксис записи процедур-подпрограмм

имеет вид:Sub имя([аргументы])Инструкции языка VBA

End Sub

ВыходВыход

Page 12: Vba программы

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

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

ВыходВыход

Page 13: Vba программы

Процедура-функция начинается ключевым словом Function и заканчивается End Function.

После Function всегда указывается имя функции с аргументами, указанными в круглых скобках.

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

ВыходВыход

Page 14: Vba программы

Синтаксис записи процедур-функций имеет вид:

Function имя([аргументы]) Инструкции языка VBA

имя=выражениеEnd Function

ВыходВыход

Page 15: Vba программы

Переменные и типы данных

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

ВыходВыход

Page 16: Vba программы

Перед использованием переменной в программе ее необходимо объявить, т.е. задать ее тип и область видимости (область использования переменной).

ВыходВыход

Page 17: Vba программы

Создание переменной путем ее использования в операторе называется неявным

объявлением переменной.Явно объявлять переменные

можно в начале программы и в том произвольном месте, где возникла необходимость использовать

новую переменную.

ВыходВыход

Page 18: Vba программы

Переменные можно объявлять на двух уровнях:

•на уровне процедуры;•на уровне модуля.

ВыходВыход

Page 19: Vba программы

Для объявлeния пеpeмeнныx иcпoльзуются операторы Dim, Public, Private и Static.

• Dim можно использовать на уровне процедуры и уровне модуля,

• Public и Private — на уровне модуля,

• Static — только на уровне процедуры. ВыходВыход

Page 20: Vba программы

Синтаксис объявления переменных:

{Dim|Public|Private|Static}

VariableName [As] [Type]

ВыходВыход

Page 21: Vba программы

Объявление простых переменных:Dim <имя переменной1, имя переменной2,

…> As <имя типа> или Dim <имя переменной1> As <имя типа1>,

<имя переменной2> As <имя типа2>, <имя переменной3> As <имя типа3>,

… Если используется ключевое слово As,

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

ВыходВыход

Page 22: Vba программы

Пример объявления типизированных переменных:

Dim ключ As singleDim стоимость As currencyDim дата_рождения As DateDim письмо As stringИмена переменных не «чувствительны» к

регистру, т.е. переменные f и F в программе означают одно и то же.

ВыходВыход

Page 23: Vba программы

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

Область видимости задается с помощью одного из четырех ключевых слов:

Dim|Public|Private|Static

ВыходВыход

Page 24: Vba программы

Объявление переменной на уровне процедуры

Ключевое слово Dim используется для объявления переменной

на уровне процедурыПеременная, объявленная на

уровне процедуры называется локальной (доступна только в той процедуре, где объявлена).

ВыходВыход

Page 25: Vba программы

Объявление переменной на уровне модуля

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

•на все процедуры одного модуля, в котором они объявлены; такие глобальные переменные, называемые закрытыми (Private), должны быть объявлены на уровне модуля либо оператором Private либо оператором Dim;

•на все приложение — все процедуры всех модулей данного приложения; такие глобальные переменные, называемые открытыми (Public), должны быть объявлены оператором Public. ВыходВыход

Page 26: Vba программы

Время жизни переменных

Время жизни переменных – время, в течение которого переменная может иметь значение.

ВыходВыход

Page 27: Vba программы

Типы данныхДанными называются объекты,

обрабатываемые программой. Тип данных определяет размер,

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

VBA разделяет обрабатываемые данные на числа, даты, строки, логические значения и объекты.

ВыходВыход

Page 28: Vba программы

Типы данныхТипы данных,

используемые при написании программ на VBA делятся на:

1.встроенные и 2.определяемые

пользователем. ВыходВыход

Page 29: Vba программы

VBA как и любой другой язык программирования имеет такие встроенные типы данных:

•числовые – числа, которые различаются размером и диапазоном допустимых значений;

•символьные – строки символов фиксированной или переменной длины;

•логические – логические значения (например, Да/Нет или True/False).

ВыходВыход

Page 30: Vba программы

ИМЯ ТИПА ВОЗМОЖНЫЕ ЗНАЧЕНИЯ ТРЕБУЕМАЯ ПАМЯТЬ

Boolean True, False 2 байта

Byte 0…255 1 байт

Integer -32768 …+32767 2 байта

Long Примерно: -2000 000 000…+2000 000 000 4 байта

Decimal Примерно 30 десятичных цифр. Можно указать число цифр после десятичной точки.

12 байтов

Single - 3,4E38 …-1,4 E-45 для отрицательных значений 1,4E-45 … 3,4E38 для положительных значений

4 байта

Double -1,7E308 … -4,9E-324 для отрицательных значений4,9E-324 … 1,7E308 для положительных значений

8 байтов

Currency Десятичные числа с фиксированной позицией запятой. Возможны 15 цифр до запятой и 4 после.

8 байтов

String Есть два вида строк:Строки фиксированной длины имеют до 216

символов.Строки переменной длины имеют до 2 31 символов.

10 байтов +1 байт на символ в обычной кодировке и 2 байта в кодировке Unicode

Date Даты изменяются в диапазоне от 1 января 100 г. до 31 декабря 9999 г.

8 байтов

Object Ссылка на объект (указатель) 4 байта

Variant Универсальный тип, значением которого могут быть данные любого из перечисленных выше типов, объекты, значения NULL и значения ошибок ERROR

Зависит от контекста, но не менее 16 байтов

ВыходВыход

Page 31: Vba программы

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

Этот тип является универсальным и может содержать данные различных подтипов: Integer, Long, String и т. п.

ВыходВыход

Page 32: Vba программы

Соглашения об именах констант и переменных:

При написании программ на VBA принято придерживаться определенных правил. Например, при объявлении переменной типа Integer в начале имени ставится специальный префикс int.

ВыходВыход

Page 33: Vba программы

Тип данных

Префикс Тип данных

Префикс

Boolean Bin Long lng

Byte Byt Object obj

Currency Cur Single sng

Date (Time)

Dtm String str

Double Dbl Variant Vnt

ВыходВыход

Page 34: Vba программы

Для задания определяемых пользователем типов данных используется инструкция Type.

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

ВыходВыход

Page 35: Vba программы

Синтаксис инструкции Type:Type имя_переменнойимя_элемента1 As тип[имя_элемента2 As тип]…End Typeздесь имя_переменной – имя, которое

требуется присвоить определяемому типу, а имя_элемента - имя элемента определяемого пользователем типа

ВыходВыход

Page 36: Vba программы

КонстантыКонстанта – это значение в VBA,

которое не меняется. Существует несколько типов констант:

•Именованные;•Численные;•Константы Date;•Константы Boolean;•Типизированные константы;•Внутренние константы.

ВыходВыход

Page 37: Vba программы

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

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

Следует помещать объявления констант на модульном уровне, чтобы у них была наибольшая область действия.

ВыходВыход

Page 38: Vba программы

Литеральные константы – это константы, записываемые непосредственно в код.

Правила написания литеральных констант (String, Integer, Data, Boolean):

•строковые константы должны быть заключены в двойные кавычки (" ");

•пустая строковая константа (нулевая строка) обозначается двумя двойными кавычками, между которыми ничего нет ("");

•строковая константа должна вся находиться на одной и той же строке. Нельзя использовать символ продолжения строки для продолжения литеральной (строковой) константы на другой строке.

ВыходВыход

Page 39: Vba программы

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

Правила написания численных констант:•численные константы должны состоять только из

числовых символов от 0 до 9;•численная константа может начинаться со знака

минус и содержать десятичную точку;•можно использовать экспоненциальное

представление для численных констант;•никакие другие символы или знаки в численных

константах не допускаются.Примеры:

– 142– – 789.3– 5.55Е4 ВыходВыход

Page 40: Vba программы

Константы Date необходимо помещать между знаками фунта (#). Независимо от того, в каком из форматов записывается литеральная константа Date, VBA переформатирует эту константу для соответствия одному из двух следующих форматов – в зависимости от того, содержит ли константа Date информацию о времени:

•#2/5/02 9:17:00 PM#•#2/5/02#

ВыходВыход

Page 41: Vba программы

Константы Boolean – существуют только две правильные константы типа Boolean:

True и False.

ВыходВыход

Page 42: Vba программы

Типизированные константы используются при явном задании типа константы. Объявление конкретного типа данных для константы может повысить точность вычислений. Для констант можно использовать типы данных Byte, Boolean, Integer, Long, Single, Double, Currency, Date, String.

Синтаксис:Const имя_константы As type = value, name As

type = value,…где type – имя любого из типов данных VBA; value – значение, присваиваемое константе.Пример:Const Pi As Double = 3.14

ВыходВыход

Page 43: Vba программы

Внутренние константы называются также предопределенными константами.

Внутренняя константа – это именованная константа, которая была определена разработчиками VBA. Внутренние константы все начинаются с букв vb для указания того, что они определяются языком VBA.

ВыходВыход

Page 44: Vba программы

Математические функции

ВыходВыход