ТОП 10:

Присвоение значения переменной



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

Значение переменной присваивается специальным оператором, называемым оператором присваивания, в котором имя переменной (слева) соединяется с присваиваемым ей значением (справа) с помощью знака равенства. Например, в операторе присваивания х = 5 переменной х присваивается значение 5.

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

Summa = CenaZaOdinKg * Wes

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

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

Константы

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

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

Литеральная константа — это такая константа, действительное значение которой (строка символов или число) записывается прямо в тексте программы. Такие константы можно изменять только при редактировании программного кода. В языке VBA строчные литеральные константы записываются в двойных кавычках (" "), а числовые — без специального форматирования.

Dim Имя As String

Dim Число As Single

Имя = "Саша"

Число = 12.5

Символическая константа, как и переменная, имеет своё имя, но, зато в отличие от переменной, значение такой константы никогда не меняется на всем протяжении выполнения программы.

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

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

Const СкидкаНаТовар = 12%

Const ВидУслуги = "Кредит"

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

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

Следует также отметить, что язык VBA предоставляет в распоряжение пользователя набор в н у т р е н н и х констант, которые были определены разработчиками VBA специально. Для того чтобы увидеть полный список внутренних констант, доступных в языке VBA, нужно открыть любой документ Word (или рабочую книгу Excel) и войти в редактор VBA. Это можно сделать, нажав сочетание клавиш <Alt+Fll>.

Теперь в редакторе через меню View надо открыть диалоговое окно Object Browser - обозреватель объектов (рис. 10.2):

 
 

 


Рис. 10.2. Окно обозревателя (Browser) объектов

 

и в нём выполнить следующие действия:

Ø в левом верхнем раскрывающемся списке окна Object Browser выберите значение VBA.

Ø ниже (в поле списка Classes) выберите значение Constants. Справа, в поле списка Members of 'Constants' будет показан полный список внутренних констант языка VBA (рис. 10.3):

 
 

 


Рис. 10.3. Выделен тип и список объектов вида Constant .

 

Ø для того, чтобы узнать значение конкретной внутренней константы надо теперь выбрать ее имя в поле списка Members of 'Constants' - в нижнем поле диалогового окна Object Browser будет выведено имя этой константы и ее значение. Более подробные сведения об этой константе (только на английском языке!) можно получить, щелкнув по кнопке Help в окне Object Browser: (рис. 10.4):

 

 


Рис. 10.4. Внизу – информация о значении константы: "" - пустая строка

 

Напоследок заметим, что работать с символической константой очень удобно, так как для изменения её значения нужно отредактировать лишь её объявление. Это можно сделать либо в процедуре, которая ее использует, либо в области объявления модуля (если эта константа используется в нескольких процедурах модуля).

Массивы

Массивэто набор элементов одинакового типа, имеющих общее имя.

Массивы позволяют работать с целым набором однотипных данных как с е д и н ы м целым. В алгоязыке VBA каждый конкретный массив должен иметь своё собственное имя и сдержать один или более элементов.

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

Одномерные массивы

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

5533467 2382219 5541235 2312278 2641710 2401199

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

Если присвоить этому массиву имя TelefNomer, то обращаться к его пятому элементу (2401199) надо так: TelefNomer (5).

Как же так? Ведь этот телефонный номер явно шестой по порядку!

Дело в том, что в языке VBA по умолчанию нумерация элементов в массиве начинается с нуля, однако с помощью оператора Option Base можно изменить начальный индекс элементов массива. Поэтому в нашем примере при стандартной нумерации элементов, записывая TelefNomer (5), мы обращаемся именно к пятому (считая от нулевого!) элементу от начала массива, т.е., к телефонному номеру 2401199. Если же перед именем массива поставить ещё и ключевое слово Int, то оно будет указывать уже на то, что в этом массиве хранятся только целые числа. Поэтому любое, хранящееся в массиве intTelefNomer значение также будет представлять собой целое число.

Многомерные массивы

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

Например, Dim Matrica (1 to 4, 1 to 6) — это матрица размером 4x6 элементов, состоящая из четырёх строк и шести столбцов. Количество размерностей массива в языке VBA не ограничено, т.е., разрешается создавать массивы как одно- или двухмерные, так и шестидесятимерные и т.д. Но чаще всего используются одномерные, двух- и трёхмерные массивы.

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

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







Последнее изменение этой страницы: 2016-04-20; Нарушение авторского права страницы

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