Правила именования объектов в VBA

Этапы подготовки задачи к реализации на ПК

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

1. Постановка задачи (математическое описание задачи, определение состава и характера исходных данных, определение искомых результатов).

2. Разработка алгоритма решения задачи.
Алгоритм – это последовательность арифметических и логических операций и связей между ними, однозначно приводящая исходные данные к искомому результату.

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

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

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

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

На этапе трансляции выявляются синтаксические ошибки (runtime error) – ошибки выполнения, т.е. те ошибки, которые приводят к остановке выполнения программы.

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

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

Выявить логические ошибки можно, выполняя контрольные примеры.

Создание программ

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

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

Почти весь создаваемый пользовательский код содержится в программах двух видов: Sub и Function.

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

Создание новой программы

1. Необходимо открыть модуль, в котором будет размещена программа:

; Вызвать редактор VBA;

; Вставка –> Модуль (Insrert –> Module) или 2-ой щелчок по имени существующего модуля в окне проекта).

2. Создать каркас программы.

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

Sub Имя_программы( [аргументы] )

Инструкции

End Sub

Где, Sub … End Sub– каркас программы, ключевые слова, обозначающие начало и конец процедуры.

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

[аргументы]– позволяют передать в процедуру требуемые для расчетов значения. Являются необязательными параметрами. Если процедура не требует никаких аргументов после имени.

(Здесь и далее [ ] обозначают, что элемент, заключенный в квадратные скобки является не обязательным и может быть опущен).

Например,

Sub День_недели()

Msgbox ”Сегодня – среда”

End Sub

Эта процедура выведет диалоговое окно с сообщением ”Сегодня – среда”.

Правила именования объектов в VBA

1. Имя (идентификатор) объекта не должно превышать 255 символов;

2. Имя объекта не должно содержать пробелов;

3. Не должно содержать специальных символов:

! @ $ ‘ # ? / () {} [] = ^ / * - + ~ <> ^ ?;

4. Не должно совпадать с ключевыми словами VBA (Sub, If, Do и т.д.);

5. В рамках одного модуля совпадение имен процедур запрещается.

Описание функций

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

Описание функции имеет следующий синтаксис:

Function имя_функции ([аргументы]) [As Тип]

Инструкции

имя_функции= выражение

End Function

Где, Function … End Function– ключевые слова, обозначающие начало и конец функции;

имя_функции– идентификатор, подчиняющийся правилам именования объектов;

аргументы– необязательные параметры, передающие в функцию требуемые значения для расчетов;

As Тип– объявляет тип возвращаемого функцией значения;

имя_функции= выражение– обязательная инструкция, связывающая имя функции с конечным результатом вычислений.

Например:

Function Сумма(x As Integer, y As Integer) As Long

Сумма = x + y

End Function

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

Sub Вычисление_z()

Dim a As Integer, b As Integer

Dim c As Integer, d As Integer, z As Double

a = Range("A1").Value

b = Range("A2").Value

c = Range("A3").Value

d = Range("A4").Value

z = Сумма(a, b) * Сумма(a, c) / Сумма(b, d)

Msgbox "Значение выражения " & z

End Sub

В этой процедуре объявляются четыре переменные целого типа и одна z – вещественного типа. Значения для переменных берутся с активного листа из ячеек А1, А2, А3 и А4. При вычислении z три раза вызывается функция Сумма с конкретными значениями для аргументов.

Использование операторов

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

! Концом оператора служит признак конца строки.

VBA имеет следующие типы операторов:

; Объявления;

; Оператор присваивания;

; Исполняемые операторы;

; Параметры компилятора.

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

!Объявление объекта должно предшествовать его использованию.

Объявление констант

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

Константны VBA делятся на:

a) Непоименованные, т.е. такие, которые вносятся прямо в текст программы, например,

2 3.14 562 – числовые константы

“привет, студент” – текстовые константы

#12/31/2002# – дата

True False –логические константы

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

Поименованная константа объявляется следующим образом:

Const имя_константы [As Тип] = значение

Например,

ConstPi As double =3.14159

ConstЦена =500

ConstStr =”Hello”

!Все строковые константы заключаются в двойные английские кавычки.

c) Внутренние константы VBA (предопределенные константы). Они служат для упрощения работы с некоторыми встроенными процедурами и функциями, такими например, как Msgbox, InputBox.

Хорошо вам известные кнопки, появляющиеся в различных диалоговых окнах, такие как “Ok”, “Yes”, “Cancel”,”No” и т. п. могут обозначаться с помощью поименованных целочисленных констант.

Все внутренние константы VBA обозначаются с помощью префикса vb, т.к. есть еще внутренние константы Excel и Word. Например, константа vbOkOnly имеет значение равное 0 и выводит в диалоговом окне кнопку “Ok”.

Константа VbYesNoCancel имеет значение равное 3 и выводит в диалоговом окне кнопки “Yes”, ”No”, и ”Cancel”.

Оператор присваивания

Оператор присваивания приписывает переменным конкретные значения. Состоит всегда из трех частей: имени переменной, знака равенства и выражения задающего нужное значение

Имя_переменной = выражение

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

! При выполнении оператора присваивания переменной, стоящей в левой части, присваивается результат вычисления выражения, стоящего в правой части.

X=4 ‘ переменной X присваивается число 4

A=4+Sin(X)

C=S>4 ‘ переменной С присваивается результат сравнения S>4

Z=Cells(1,2).Value ‘переменной Z присваивается значение ячейки, стоящей на пересечении 1-‘ой строки и 2-ого столбца

Cells(1,2).Value= Z ‘Ячейке, стоящей на пересечении 1-‘ой строки и 2-ого столбца ’присваивается значение переменной Z

Не следует путать знак “=” с математическим знаком равенства. В математике знак “=” служит для обозначения того факта, что две величины равны между собой. В VBA знак присваивания служит другой цели – записывает некоторое значение в участок памяти, на который указывает имя переменной.

Параметры компилятора

Параметры компилятора – класс операторов, представляющих собой инструкции для управления поведением компилятора VBA.

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

Некоторые параметры компилятора:

Option Base число – установка правила нумерации элементов массива. По умолчанию элементы массива в VBA нумеруются с 0.

Option Base 1 ‘устанавливает нумерацию элементов массива с 1.

Option Explicit – в результате помещения этой директивы в модуль, VBA запрещает использование необъявленных переменных. Аналогично использованию последовательности команд в редакторе VBA: Сервис–> Параметры –>флажок «Явное описание переменных» (“Require Variable Declaration”).

Эту директиву рекомендуется добавлять в ваш проект, т.к. она исключает возможность случайного использования необъявленных переменных. Например, если будет допущена ошибка при использовании некоторых операций, например, набрано 5mod2 вместо 5 mod 2 или aORb вместо a OR b, то VBA воспримет 5mod2 и aORb как новые не объявленные переменные.

Исполняемые операторы

Исполняемые операторы используются для выполнения следующих задач:

– вызов пользовательских функций;

– активизация методов объектов;

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

– выполнение встроенных функций VBA.

Как правило, один оператор занимает в VBA-программе одну строку.

Если строка программного кода слишком длинна, то ее можно разместить на 2-х и более строках, используя знак подчеркивания. Например,

Msgbox “Эта строка – ” & St & _

“является слишком длинной”

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

Dim A As Byte, B As Byte, C As Integer

A=20 : B=12 : C=48

Комментарии

Комментарии в VBA-программе начинаются со знака английского апострофа. Например,

‘Это комментарий

Dim A As Byte, B As Byte ‘Объявление переменных

Операции в VBA

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

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

Обозначение Пояснение Пример
Арифметические операции
+ – Сложение, вычитание А+4
* / Умножение, деление A*b/c
^ Возведение в степень B^4
\ Целочисленное деление. Возвращает целую часть от деления двух целых чисел 5\2 результат–>2
mod Возвращает остаток от деления двух целых чисел 5 mod 2 результат –> 1
Логические операции
Not Логическое отрицание. Меняет значение своего операнда на противоположное A = True B = Not A B –> False
And Логическое «И». Возвращает Истину, если все без исключения условия верны, иначе Ложь. A=True : B = False C = A And B C –> False
Or Логическое «Или». Возвращает Истину, если истинно хотя бы одно условие. A =3 : B =5 C = (A>6) Or (B<10) C –>True
XOR «Исключающие Или». Возвращает Ложь, если все условия возвращают одинаковые значения, все истинны или все ложны. Возвращает Истину, если условия исключают друг друга. A=True : B =True : C= False D =A XOR B D–>False D = B XOR C D–> True
Операции сравнения
= Знак равенства  
<> Не равно  
< Меньше  
> Больше  
<= Меньше либо равно  
>= Больше либо равно  
Like Сравнение строк с заданным образцом. В образце могут использоваться подстановочные символы: *,? и др. A=”Hello!” C= A Like “Привет!” C –>False C= A Like “He*” C –> True
Is Проверка идентичности ссылок на объект  
Знак конкатенации
& Объединяет строки. MsgBox “Пример строки:” & “Это – строка”

Приоритет операций

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

( ) выражения в круглых скобках
соs(x) вычисление функций
^ возведение в степень
- sin(x) унарный минус (смена знака)
*, / умножение, деление
\ целочисленное деление
mod целочисленный остаток от деления
+,– сложение, вычитание
& знак конкатенации
>, <= операции сравнения
And, Or, Not Логические операции

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