Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Краткая теория_ИТ_БА_ДФО_экз 2012.doc
Скачиваний:
24
Добавлен:
22.09.2019
Размер:
1.82 Mб
Скачать

Процедуры, модули, инструкции

Программы на языке VBA создаются в виде процедур в окне редактора VBE (Visual Basic Editor).

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

VBA позволяет создавать такие типы процедур, как процедуры-подпрограммы, процедуры-функции.

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

В документе Word и в рабочей книге Excel может содержаться произвольное число подпрограмм.

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

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

Sub имя([аргументы])

Инструкции языка VBA

End Sub

Пример процедуры-подпрограммы Hello:

Sub Hello()

MsgBox ("Привет!")

End Sub

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

Процедура-функция начинается ключевым словом Function и закан­чивается End Function. После Function всегда указывается имя функции с аргументами, указанными в круглых скобках. В конце тела процедуры необходимо указать инструкцию имя=выражение для задания возвращаемого значения. Синтаксис записи процедур-функций имеет вид:

Function имя([аргументы])

Инструкции языка VBA

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

End Function

Пример процедуры-функции Square, которая возводит переданное ей число во вторую степень:

Function Square(num_One As Double) As Double

Square = num_One ^ 2

End Function

Ключевое слово Function означает, что мы объявляем функцию. Следом за ним, в скобках, идет объявление параметров, которые мы можем передать функции. В нашем случае это - одна переменная num_One типа Double. После объявления имени и параметров функции следует объявление типа самой функции, или, точнее - типа возвращаемого функцией значения. В нашем случае с помощью конструкции As Double мы задали тип функции Double. При объявлении функции можно не указывать тип - тогда он автоматически будет установлен в Variant.Последняя строка объявления функции - End Function, означает конец функции.

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

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

Пример комментария:

Selection. Font.Size=13 'Задать для выделенного фрагмента текста размер шрифта 13

Инструкция – это синтаксически завершенная конструкция, представляющая отдельное действие, описание или определение.

Пример инструкции:

MsgBox ("Привет!")

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

  • ключевые слова (зарезервированные) – слова или символы, распознаваемые как элемент VBA;

Пример ключевых слов:

Sub, End, Type, Dim, As, String,Is,…

  • операторы – знаки операции в выражениях;

математические: + - * / ^

\ 'целочисленное деление 10\3=3

mod (остаток от деления 8 mod 2 =0, 7 mod 4 =3

сравнения: < > <= >= <> =

Is 'сравн. 2-х операндов (тип Odject) E1 is E2

Like 'сравн. 2-х строк.выраж (тип String) E1 like E2

логические: And Or Not Imp Eqv (эквивалентность)

Xor 'Исключающее Or (Исключающее «ИЛИ»)

конкатенация: & 'конкатенация (сцепление строк). Для сцепления строк допустимо использование операции вида [Строка1] + [Строка2]

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

Пример имен переменных:

str_Name, num_Age, str_Name1, num_Item2…

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

Таблица 5. Типы данных VBA

Тип данных

Описание и диапазон значений

Array

Массив переменных любого встроенного типа данных

Boolean

True (истина) или False (ложь)

Byte

Положительное число от 0 до 255

Currency

Используется для денежных вычислений с фиксированным количеством десятичных знаков.

Date

Дата и время. Диапазон дат: от 01.01.0100 г. до 31.12.9999 г.

Decimal

Десятичное представление данных в целочисленной или вещественной форме

Double

Число с плавающей точкой двойной точности.

Integer

Целое число от -32 768 до 32 767

Long

Длинное целое число от -2 147 483 648 до 2 147 483 647

Object

Ссылка на объект

Single

Число с плавающей точкой обычной точности.

String (переменной длины)

Длина строки от 0 до, приблизительно, 2 миллиардов символов

String (фиксированной длины)

от 0 до ~65 000 символов

Variant

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

Определяемый пользователем тип данных

Используется для описания различных структур данных

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

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

VBA поддерживает неименованные и именованные константы.

Неименованные константы — это фактические значения данных определенного типа. Их можно использовать без какого-либо объявления, непосредственно в выражениях.

Именованные константы — это мнемонические обозначения неименованных констант.

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

Пример констант:

Const str_Name As String = "Александр"

Const int_Size As Double = 18000

Dim num_NewSize As Double

MsgBox ("Здравствуйте")

num_NewSize = int_Size * 2

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

Application. RunMacroName:="Project.ThisDocument.Lingvo14_Timer"

Selection.Font.Size = 17

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

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

Если переменная не была описана, она по умолчанию получает тип Variant (в этом случае нерационально используется память).

Синтаксис инструкции описания Dim: Dim <имя переменной> [As <имятипа>]

Примеры описаний переменной:

Dim HelloMsg 'переменная HelloMsg как Variant, т.к. не описан тип

Dim Result As String 'переменная Result как строковая

Dim А(1 То 10) As String 'одномерный массив А из десяти строковых элементов

  • инструкции присвоения – присваивают значение или выражение переменной или константе (всегда содержат знак =);

Значение выражения может быть присвоено переменной или свойству, только если оно имеет совместимый с этой переменной тип данных.

Невозможно присвоить строковое выражение числовой переменной или числовое выражение строковой переменной.

Переменным типа Variant могут присваиваться как строковые, так и числовые выражения.

Пример

Dim S As String 'объявление строковой переменной S

S=“Здравствуйте!” 'присвоение строковой переменной S значения

n=10 'присвоение числовой переменной n значения 10

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

Const <имяКонстанты> [As <типДанных>] = <значение>

где: имяКонстанты – имя константы; значение – значение константы.

Const intPersonCount As Integer = 100

Const maxLen = 50

Const Greeting = “Hello, Max!”

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

Пример

If S<0 Then 'проверка условия S<0

S=S+1 'увеличение значения переменной S на 1, если условие истинно

Else

S=S-1 'уменьшение значения переменной S на 1, если условие ложно

End If 'завершение проверки условия