Алфавит, словарь, идентификаторы

ВВЕДЕНИЕ В VBA ДЛЯ ПРИЛОЖЕНИЙ MS OFFICE

 

Подобно другим языкам программирования VBA позволяет создавать полностью автоматические программные продукты. Однако, прежде всего, VBA – это инструмент разработки приложений MS Office. Дело в том, что VBA является общей языковой платформой для всех приложений MS Office. Поэтому он встроен во все приложения: Excel, Word, Access и др. Это с одной стороны значительно расширяет функциональные возможности каждого приложения, а с другой позволяет объединять данные из нескольких приложений в одном документе. Например, можно открыть базу данных Access, проанализировать ее данные с помощью встроенных или созданных средств в Excel, а результаты анализа вывести в документ Word.

Язык VBA является производным от языка Visual Basic (VB). Синтаксис этих языков практически одинаков. Основное различие их заключается в том, что VB имеет собственную среду разработки, а VBA использует среду, встроенную в приложение MS Office – редактор VBA. В силу этого, с помощью VB можно создать полностью самостоятельный программный продукт, в то время как проекты VBA могут быть выполнены только с помощью приложения, которое поддерживает VBA.

БАЗОВЫЕ ЭЛЕМЕНТЫ ЯЗЫКА VBA

Алфавит, словарь, идентификаторы

Любая программа формируется с помощью конечного набора знаков, из которых состоит алфавит языка.

Алфавит языка VBA образуют:

- прописные и строчные буквы латинского алфавита;

- десятичные цифры;

- знак подчеркивания “_”;

- специальные символы:


+ плюс

- минус

* звездочка

/ дробная часть

= равно

> больше

< меньше

[ ] квадратные скобки

( ) круглые скобки

{} фигурные скобки

. точка

, запятая

: двоеточие

; точка с запятой

´ знак апострофа

“” кавычки

# номер

& амперсанд

$ знак денежной единицы

^ тильда

\ слеш

% знак процента

! восклицательный знак

? вопросительный знак

пробел (обозначения нет)


Комбинации специальных символов могут образовывать составные символы:

<> не равно

<= меньше или равно

>= больше или равно

. . диапазон значений

= присваивание

Знаки алфавита используются для составления слов.

Слова – неделимые последовательности знаков алфавита, отделенные друг от друга разделителями, и несущие определенный смысл в программе.

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

Слова подразделяются на две группы:

- ключевые слова;

- идентификаторы пользователя.

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

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

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

Ø Длина имени не должна превышать 255 символов;

Ø Имя может содержать любую комбинацию букв, цифр и допустимых символов, начинающуюся только с буквы;

Ø Допустимыми символами являются знак подчеркивания “_”, который может быть размещен в любом месте идентификатора, кроме первого, единичные знаки %, !, $, &, @ могут располагаться только в конце идентификатора;

Ø Имена должны быть уникальны внутри области, в которой они определены;

Ø Имена не должны совпадать со служебными словами VBA и именами встроенных функций и процедур.

Например:

§ допустимые имена:X15, F_I_O, NomerTel, A%, B@;

§ недопустимые имена: 15x, Ф.И.О., №Tel, A%_1, B@@.

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

Поскольку регистр букв не имеет значение, то лучше пользоваться такими именами PlanWupyska, Plan_wupyska , нежели Planwupyska. Или выражение R=F/P станет более понятным, если его заменить таким:

Procent = Fakt / Plan

Идентификаторы VBA не «чувствительны» к состоянию регистра: написание идентификатора прописными или заглавными буквами не имеет значения. Например, идентификаторы пользователя Name и name или Sin и sin для VBA представляют собой одно и то же. Если же переменная объявлена явно, то все обращения к идентификатору переменной, преобразуются в соответствии с ее объявлением.

 

Типы данных

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

Тип данных переменной определяет:

1) множество значений, которые может принимать переменная;

2) совокупность операций, допустимых над переменной;

3) объем выделяемой памяти и форму представления данных в ней.

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

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

      Таблица 1
Тип данных Описание Размер, байт Диапазон
Byte Байт От 0 до 255
Boolean Логический True или False
Integer Целое От -32 768 до 32 767
Long Длинное целое От -2 147 473 648 до 2 147 483 647
Single С плавающей точкой обычной точности От -3,402823Е38 до - 1,401298Е-45 для отрицательных чисел От 1,401298Е-45 до 3,402823Е38 для положительных чисел
Currency Денежный От -922337230685477,5808 до 922337203685477,5807
Double С плавающей точкой двойной точности  
Date Даты и время С 1 января 1900 года до 31 декабря 9999 года
String Строковый    
Variant Числовые подтипы 16 байт + N байт (согласно типу) Переменная любого числового типа

 

Переменные

 

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

Для объявления переменных обычно используется инструкция объявления Dim.

Синтаксис:

Dim имяПеременной [As тип] [, имяПеременной [As тип] …

Элементы синтаксиса:

имяПеременной –

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

тип –

Необязательный. Тип данных переменной. Для каждой описываемой переменной следует использовать отдельное предложение As тип. В случае отсутствия параметра переменная будет иметь тип Variant.

Например, инструкции

Dim A As Integer, B As Single

Dim C As Boolean

описывают переменные А – целого, В – вещественного и С – логического типа.

Это же объявление переменных можно выполнить с помощью одной инструкции Dim:

Dim A As Integer, B As Single, C As Boolean

При объявлении любой переменной VBA выполняет ряд действий:

· В памяти выделяется область, размер которой определяется в соответствии с типом объявляемой переменной.

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

· Переменная инициализируется, т.е. в соответствии с типом объявляемой переменной ей присваивается начальное значение. Число инициализируются значением 0, переменные Boolean – значением False, строки – пустыми строками (не содержат символов).

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

Переменные, описанные с помощью инструкции Dim, называются явно описанными.

Переменные являются неявно описанными, если 1) они используются в программе без объявления их с помощью инструкции Dim или 2) в инструкции объявления типа переменной был опущен параметр тип.Неявно описанные переменные связываются с типом Variant, а затем они используются как любые другие переменные этого типа. Однако, при этом, во-первых, потребуется больше ресурсов памяти по сравнению с другими типами данных и времени, т.к. компилятор вынужден сначала определить настоящий тип переменной, затем преобразовать его к этому типу, и только потом использует в вычислениях. При работе с достаточно большими программами это может привести к значительной потере во времени и ресурсах. Во-вторых, не описывая переменные явно можно получать неправильные ответы или ситуацию «бесконечный цикл» всего лишь из-за орфографической ошибки или описки.

Например, при написании процедуры Prim допущена описка: вместо инструкции K=K+10 введена инструкция K=K1+10. В результате будет искажен результат.

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

Например, инструкции

Dim A, В, С As Integer

Dim D As Variant

описывают переменные A, В и D типа Variant. Причем переменная D описана явно, а переменные A и В неявно.Для того чтобы все три переменные первой инструкции были объявлены как целые, необходимо было написать такую инструкцию:

Dim A As Integer, В As Integer, С As Integer

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

Чтобы наложить требование на явное описание переменных, необходимо в разделе описаний модуля указать директиву компилятора Option Explicit:

Option Explicit

Sub Prim()

Dim K As Byte

K=K+10

. . .

End Sub

Константы

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

В VBA существуют константы двух типов:

- Литеральные. Это константы, определяемые их значениями и используемые в выражениях. Различают числовые (3.14; 16; 4.2Е+02), строковые (“ГЭФ”; “Иванов И.И.”) и логические константы (True, False).

- Именованные, т.е. имеющие собственные уникальные идентификаторы. Они в свою очередь разделяются на

Встроенные (стандартные) константы. Их имена и количество определяются используемым приложением. В MS Excel их очень много. Например, к встроенным константам относятся vbOKOnly, fmAltMask и т.д.

Пользовательские константы объявляются самим пользователем с помощью инструкции Const. В момент объявления пользовательским константам присваиваются значения. Попытка переопределения значения константы с помощью оператора присваивания вызывает ошибку.

Сокращенный синтаксис инструкции Const:

 

Const ИмяКонстанты [As тип] = выражение

 

Элементы синтаксиса:

ИмяКонстанты

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

тип

Необязательный. Связывает объявляемую константу с одним из поддерживаемых типов данных. Для каждой описываемой константы следует использовать отдельное предложение As тип. В случае отсутствия параметра тип константы определяется типом выражения.

выражение

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

Например, следующие инструкции

Const Year As Integer=2003

Const Plan=129

объявляют две целочисленные константы: Year и Plan. Первая константа имеет явно описанный целый тип, а тип второй определяется ее значением.

Инструкция

Const NameGrup = “МТ - 21”

осуществляет объявление строковый константы NameGrup, которой присвоено значение строкового литерала МТ – 21.

Логическая константа Flag, с которой связывается значение True (Истина), может быть объявлена следующим образом:

Const Flag = True








Дата добавления: 2015-11-10; просмотров: 2219;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.026 сек.