Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Основы программирования на VBA для Microsoft Excel. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
12.08.2026
Размер:
783 Кб
Скачать

3.СИНТАКСИС

ИПРОГРАММНЫЕ КОНСТРУКЦИИ VBA

Основы синтаксиса

Под синтаксисом языка программирования понимается совокупность правил, которая определяет организацию элементов этого языка и порядок их использования. Синтаксис VBA почти полностью совпадает с синтаксисом VB. Прежде чем начинать программирование, следует ознакомиться с синтаксисом языка программирования.

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

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

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

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

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

Слово REM может стоять только в начале строки, а символ апострофа устанавливается как в начале строки, так и внутри нее. В редакторе VBA комментарии выделяются другим цветом.

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

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

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

41

В целом, основные правила языка VBA сводятся к следующему:

1)VBA не чувствителен к регистру; пробелы, символы табуляции

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

2)максимальная длина имени переменной, константы или процедуры не должна превышать 255 символов;

3)для обозначения комментария используется одинарная кавычка или команда REM;

4)символьные значения заключаются в двойные кавычки;

5)несколько операторов в одной строке разделяются двоеточиями;

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

Алфавит VBA

Алфавит – это набор символов, допустимых для использования при программировании. В алфавит VBA входят:

прописные и строчные буквы латинского и русского алфавитов; арабские цифры (от 0 до 9); специальные символы, применяемые в обозначениях операций,

комментариев и т. д.

Спецсимволы и их сочетания представлены в табл. 1.

 

Т а б л и ц а 1

 

Спецсимволы и их сочетания

 

 

Символы

Область использования

и их сочетания

 

 

 

+

Суммирование в математических выражениях и сцепле-

 

ние строк в строковых выражениях

 

 

Операция вычитания

 

 

*

Операция умножения

 

 

/

Операция деления

 

 

\

Операция целочисленного деления

 

 

^

Операция возведения в степень

 

 

()

Части сложных выражений

 

 

=

Оператор присваивания или знак равенства, применяе-

 

мый в логических выражениях

 

 

42

 

О к о н ч а н и е т а б л . 1

 

 

Символы

Область использования

и их сочетания

 

 

 

&

Операция сцепления подстрок в строку (конкатенация)

 

 

Комментарий

 

 

Знак

Разрыв строки исходного кода программы или связки

подчеркивания

в идентификаторах

 

 

>

Операция «больше»

 

 

<

Операция «меньше»

 

 

<=

Операция «меньше» или «равно» («не больше»)

 

 

>=

Операция «больше» или «равно» («не меньше»)

 

 

<>

Операция «не равно»

 

 

Пробел

Разделитель слов (операторов) в языке

 

 

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

Типы данных

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

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

Операции над данными проверяются уже на этапе компиляции (перевода программы в машинные коды), недопустимые операции не

43

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

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

Производные (структурные) типы служат в качестве характеристики более сложных совокупностей данных, составленных из простых.

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

Из базовых типов можно создавать сложные структурные типы, которые характеризуют уже не элементарные данные, а более сложные совокупности данных, составленные из простых.

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

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

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

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

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

44

Простые типы данных

VBA содержит 12 встроенных простых типов данных, описания которых приведены в табл. 2.

Т а б л и ц а 2

 

Простые типы данных языка VBA

 

 

Тип

Описание и возможные значения

 

 

Boolean

Логический (True, False)

 

 

Byte

Байт – целое число (от 0 до 255)

 

 

Integer

Целое число (от –32 768 до 32 767)

 

 

Long

Длинное целое (от –2 147 483 648 до 2 147 483 647)

 

 

Decimal

Десятичное, примерно 30 десятичных цифр

 

 

Single

Число с плавающей запятой одинарной точности

 

 

Double

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

 

 

Currency

Денежный – число с фиксированной десятичной точкой

 

 

String

Строка символов

 

 

Date

Дата (от 1 января 100 года до 31 декабря 9999 года)

 

 

Object

Объект – ссылка на объект (указатель)

 

 

Variant

Универсальный (принимает значения любого типа)

 

 

Операнды, операции и выражения

Элементы данных, над которыми выполняется какое-либо действие, называются операндами. Действия над операндами обозначаются соответствующими знаками операций. Например, в выражении 1+2 числа 1 и 2 – операнды, а знак + определяет операцию сложения.

Операции – это элементарные действия над данными. В VBA операции выполняются в соответствии с их приоритетами. Список допустимых операций и их приоритеты показаны в табл. 3.

45

 

Т а б л и ц а 3

Операции и их приоритеты

 

 

 

 

 

Операция

 

Приоритет

 

 

 

Вызов функции и выражения в скобках

 

1

 

 

 

^ (возведение в степень)

 

2

 

 

 

- (смена знака числа)

 

3

 

 

 

* (умножение), / (деление), \ (целочисленное деление),

 

4

Mod (деление по модулю, нахождение остатка от деления)

 

 

 

 

 

+ и – (сложение и вычитание)

 

5

 

 

 

<, >, >=, <=, <>, = (операции отношения: меньше, больше,

 

6

больше или равно, меньше или равно, не равно, равно)

 

 

 

 

 

Not (логическая операция отрицания)

 

7

 

 

 

And (операция логического сложения)

 

8

 

 

 

Or (операция логического умножения)

 

9

 

 

 

Xor (поразрядная логическая операция Исключающее ИЛИ)

 

10

 

 

 

Операции, имеющие высший приоритет, выполняются первыми. Операции, имеющие одинаковый приоритет, выполняются в соответствии с правилом ассоциативности (слева направо или в обратном порядке).

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

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

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

Виды операций

Среди множества операций можно выделить математические и логические операции, операции отношения и операции работы со строками.

46

Математические операции применяют для записи формул, представляющих собой отдельные операторы и служащие для вычисления новых значений. К основным математическим операциям относятся операции сложения, вычитания, умножения и деления, обозначаемые знаками +, –, *, /.

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

К дополнительным математическим операциям относятся операция целочисленного деления, обозначаемая знаком \ ; операция возведения в степень, обозначаемая знаком ^, и операция Mod нахождения остатка от деления.

Например, с помощью дополнительных математических операций можно сформировать следующие операторы:

1)X=5\2, результат X=2 (целая часть от деления);

2)X=5 Mod 2, результат X=1 (остаток от деления);

3)X=2^3, результат X=8 (возведение в степень).

Операции отношения (сравнения) относятся к простейшим логическим операциям и применяются для записи условных выражений, результатом выполнения которых может быть только два значения – True (Истина) или False (Ложь). Например, результатом вычисления выражения 2<3 будет значение True, а результатом выражения 3<2 – значе-

ние False.

С помощью специальных логических операций, таких как И, ИЛИ, НЕ, Исключающее ИЛИ, формируются более сложные конструкции – логические выражения, результатом выполнения которых также являются два значения: True или False.

Например, с помощью логических операций И, ИЛИ, НЕ, Исключающее ИЛИ, обозначаемых соответственно ключевыми словами AND, OR, NOT, XOR, можно определить выражения:

1)X=2<3 AND 3>2, результат X=True ;

2)X=2>3 OR 3>2, результат X=True ;

3)X= NOT 2>3, результат X=True ;

4)X=2<3 XOR 3>2, результат X=False.

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

Операция ИЛИ (логическое сложение) обозначается ключевым словом OR и дает результат True в тех случаях, когда хотя бы один из

47

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

В отличие от других логических операций операция отрицания НЕ (логическое отрицание), обозначаемая как NOT, является унарной операцией, т. е. операцией над одним операндом. Ее результатом будет значение True в том случае, если операнд имеет значение Ложь. И наоборот, если операнд имеет значение Ложь, то операция NOT дает значение Истина.

Операция Исключающее ИЛИ, обозначаемая ключевым словом XOR, дает значение Истина только в том случае, если операнды имеют различные значения. Если операнды имеют одинаковые значения, результатом операции XOR будет значение Ложь.

Для работы со строками в VBA есть только одна операция – операция объединения строк. Ее еще называют операцией конкатенации и обозначают символом &. С ее помощью можно определить оператор, служащий для объединения строк, например:

X="Миру" & "мир"

Результатом такой операции будет строка «Миру мир». Операция объединения строк может быть также обозначена знаком +.

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

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

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

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

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

Константа – это значение в программе, которое при выполнении программы нельзя изменять. Их применяют для защиты информации

48

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

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

Константы бывают литеральными и именованными.

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

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

Const, например:

Public Const PI As Single=3.14

Здесь ключевое слово Public определяет область видимости костанты – все приложение.

Константами могут быть числа, строки, даты, логические значения. Значения дат при определении констант следует обрамлять знаками #. Пример:

Const D2 As Date=#2/1/2010#

Const D3 As Date=#3/1/2010#

MsgBox ("В феврале " & (D3 - D2) & " дней")

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

Const AB As String="Проверка"

Константы типа Boolean могут иметь только два значения – True и False. Значения этих констант нельзя брать в кавычки или сокращать. Пример:

Const T As Boolean=True.

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

На имена переменных и констант накладываются определенные ограничения. Так, имя переменной или константы обязательно должно начинаться с буквы. В составе имени нельзя использовать символы: !, @, &, $, # и символ пробела. В качестве имени нельзя использовать

49

ключевые слова VBA. Имя не должно иметь повторов в пределах его действия. Длина имени ограничена 255 символами.

Область действия переменных и констант определяется с помощью ключевых слов: Private, Public и Static.

Private – область действия в пределах конкретного модуля. После завершения выполнения модуля память, отведенная под эти переменные, освобождается.

Public – область действия в пределах всего приложения.

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

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

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

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

Переменная объявляется с использованием ключевых слов: Private, Public, Static, Dim. Для указания типа переменной используется ключевое слово As. Если оно опущено, то переменной присваивается тип

Variant.

Числовой переменной по умолчанию присваивается нулевое значение.

Примеры объявления числовых переменных:

Dim X As Integer

Dim Y As Single

Пример объявления строковой переменной:

Dim St As String

Примеры объявления массивов:

Dim М(12) As Integer Dim N(1 to 20) As Single

Dim R(1 to 5, 1 to 7) As Integer

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

50

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]