Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Excel_new.doc
Скачиваний:
97
Добавлен:
22.02.2015
Размер:
5.05 Mб
Скачать
        1. Оператор Dim

Для объявления типа переменных используется оператор Dim (Dimension). Его формат: Dim переменная As тип, переменная As тип (необходимо описывать каждую переменную индивидуально). Пример:

Dim stroka As String, stroka_1 As String

Dim cost As Currency, I As Integer

Dim Cart

Последняя переменная имеет тип Variant (можно было бы и не описывать - она будет определена по умолчанию, но если вы включили в программу оператор Option Explicit, вы обязаны явно описывать все переменные).

При инициализации переменных числовая переменная получает значение 0, строка переменной длины получает значение пустой строки (""), а строка фиксированной длины заполняется нулями. Переменные типа Variant получают при инициализации значение Empty (пустой). Переменной со ссылкой на объект перед ее использованием необходимо присвоить существующий объект с помощью оператора Set. До присвоения объекта описанная объектная переменная имеет специальное значение Nothing, которое указывает, что она не содержит ссылку на какой-либо определенный объект.

        1. Массивы

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

Оператор

Комментарий

Dim cost(5) As Currency,

i=0,…,4

Dim Ikra(700 To 799) As Integer

i=700,…,799

Dim birthday (3 To 23, 5 To 7) As Date

Двумерный, i=3,…,23, j=5,…,7

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

        1. Пользовательские типы данных. Структуры

Для создания новых типов данных используется оператор Type. Его формат:

Type имя

.......тело структуры

End Type

Например,

Type Client

Name As String

Phone As String

birthday As Date

End Type

Далее можно объявить

Dim MyClient(199) As Client

Для доступа к элементу структуры используется точка (как в СИ), например,

MyClient(k).Name=”Николай”.

        1. Динамическое перераспределение памяти

Для динамического перераспределения памяти применяется оператор ReDim .

Синтаксис: ReDim [Preserve] Var1 (индексы) [As тип] , Var2 (индексы) [As тип]].

Здесь Var1, Var2,… - имена переменных, Preserve - необязательный параметр, ключевое слово, используемое для сохранения данных в существующем массиве при изменении значения последней размерности.

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

Пример:

Оператор

Комментарий

Dim MyArray() As Single

Начальное объявление типа (Single)

num=Selection. Rows.Count

Число строк в выделенном массиве ячеек Excel

ReDim MyArray (num)

Выделяется память для массива MyArray, размерностью num

Имеется возможность повторно использовать инструкцию ReDim для изменения числа элементов и размерностей массива. Однако не допускается описание массива с одним типом данных и использование оператора ReDim для последующего изменения типа данных этого массива.

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

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

ReDim X(10, 10)

. . .

ReDim Preserve X(10, 15)

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

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