Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Переменная - это поименованное место в оперативной памяти компьютера.

Поиск

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

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

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

Ø имя обязательно должно быть уникальным;

Ø максимальная длина имени - 255 символов;

Ø имя должно начинаться с буквы;

Ø в качестве прочих символов имени д о п у с т и м ы буквы, цифры и символ подчеркивания (_); другие символы не допускаются;

Ø в качестве имени н е л ь з я использовать к л ю ч е в ы е (зарезервированные ) слова языка Visual Basic (например, Print).

ПРИМЕЧАНИЕ 8: в имени можно использовать и строчные и заглавные буквы, однако, в отличие от Word или Excel, для Visual Basic это б е з р а з л и ч н о. Для него SumZarpl и sumzarpl – это одно и тоже.

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

Объявление переменных

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

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

Для явного объявления переменной используется оператор Dim, с помощью которого в языке VBA резервируется область памяти, предназначенная для хранения данных указанного типа. На эту область и будет ссылаться переменная. Синтаксис оператора Dim таков:

Dim Имя_переменной [ Аs Тип_данных]

Необязательная часть объявления переменной заключена в скобки [ ] и может быть опущена. Например, объявления переменных Name и Name1:

Dim Name As String

Dim Namel

В первом операторе Name — имя переменной, a String (строчный) — присвоенный ей тип данных.

Во втором операторе конструкция As String (как строчный) отсутствует, поэтому переменной Namel будет присвоен тип Variant.

П О М Н И Т Е: переменные типа Variant требуют для своего хранения гораздо б о л ь ш е памяти и работа с ними з а м е д л я е т выполнение программы. Хотя такие переменные не ограничены хранением какого-то одного типа данных, на практике ситуация, когда в одной переменной требуется хранить данные разных типов, встречается довольно редко.

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

Dim Name As String, TabNom As Integer

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

Область действия переменной

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

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

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

1) места объявления этой переменной и

2) указанных при ее объявлении ключевых слов.

Для областей действия переменных можно выделить т р и уровня.

1. П е р е м е н н а я, объявленная в п р о ц е д у р е, является доступной т о л ь к о в э т о й п р о ц е д у р е.

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

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

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

3. П е р е м е н н а я, объявленная в разделе объявления модуля сп о м о щ ь ю к л ю ч е в о г о с л о в а Ри blic, является доступной для в с е х м о д у л е й во в с е х проектах.

При наличии в разделе объявлений модуля оператора Option Private Module переменные, объявленные с использованием ключевого слова Public, будут доступны всем модулям только данного проекта.

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

Рассмотрим следующий абстрактный (не "привязанный" к конкретной задаче) пример (см. рис.10.1).

Здесь переменные а и b доступны в пределах всего модуля, в состав которого входит приведенный выше фрагмент. Переменная с будет доступна для всех модулей, но только данного проекта (поскольку указан оператор Option Private Module).

Переменная х будет доступна только внутри самой процедуры NewSub, поскольку она объявлена непосредственно в ней.

Option Private Module

Dim a As Integer

Private b As Long

Public с As Single

.......

Public Sub

NewSub ()

Dim x As Single

........

End Sub

Рис. 10.1. Способы объявления переменных в VBA-программе



Поделиться:


Последнее изменение этой страницы: 2016-12-16; просмотров: 379; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.221.34.62 (0.007 с.)