Разделы презентаций


Синтаксис языка VBA

Содержание

Понятие и размерность массива Массив - это совокупность переменных, которые имеют общие имя и базовый тип. Все элементы данных, сохраняемых в массиве, должны иметь один и тот же тип. Информация, сохраненная

Слайды и текст этой презентации

Слайд 1Синтаксис языка VBA
Массивы VBA. Статические и динамические массивы.

к.п.н., доцент Суханова

Н.Т.

Синтаксис языка VBAМассивы VBA. Статические и динамические массивы.к.п.н., доцент Суханова Н.Т.

Слайд 2 Понятие и размерность массива
Массив - это совокупность переменных, которые имеют общие

имя и базовый тип.
Все элементы данных, сохраняемых в массиве,

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

Понятие и размерность массива Массив - это совокупность переменных, которые имеют общие имя и базовый тип. Все

Слайд 3Для хранения значений массива отводится столько ячеек памяти, сколько их

содержится в массиве.
Каждая ячейка памяти отводится под отдельный элемент массива.

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


Понятие и размерность массива

Для хранения значений массива отводится столько ячеек памяти, сколько их содержится в массиве.Каждая ячейка памяти отводится под

Слайд 4При необходимости выполнить некоторое действие над всеми элементами массива можно

сослаться на массив как целое по его имени. Возможны также

ссылки на его отдельные элементы. Каждый отдельный элемент массива определяется именем массива и значениями индексов.
Например, ссылка А(7) означает, что А – это имя одномерного массива с одним индексом, элемент массива имеет значение индекса равное 7.

Понятие и размерность массива

При необходимости выполнить некоторое действие над всеми элементами массива можно сослаться на массив как целое по его

Слайд 5 Одномерные массивы
Одномерный массив - это самый простой вариант массива, использующий обыкновенный

список данных.
Например: Вася, Петя, Коля, Миша, Ваня, Слава, Игорь, Юра Это

строковый массив, состоящий из 8 элементов. Дадим ему название My_Array.
My_Array = {Вася, Петя, Коля, Миша, Ваня, Слава, Игорь, Юра}
My_Array(3) = Коля
Одномерные массивы Одномерный массив - это самый простой вариант массива, использующий обыкновенный список данных. Например: Вася, Петя,

Слайд 6Нумерация элементов массива
Нумерация элементов в массиве начинается с 0. Такая

система нумерации довольно распространена в программировании и называется нумерацией с нулевой

базой.
Поскольку нумерация с нулевой базой не очень удобна, то в VBA имеется директива компилятора, позволяющая исправить это "неудобство": Option Base. Директива компилятора имеет два варианта написания: Option Base 0 - индексы массивов начинаются с 0 (установка по умолчанию) Option Base 1 - индексы массивов начинаются с 1

Нумерация элементов массиваНумерация элементов в массиве начинается с 0. Такая система нумерации довольно распространена в программировании и

Слайд 7Данная директива компилятора помещается в область объявлений модуля перед объявлениями

любых переменных, констант или процедур. Нельзя помещать Option Base внутри процедуры. Можно

иметь только один оператор Option Base в модуле, который влияет на все массивы, объявляемые в модуле.
Одномерные массивы хорошо подходят для представления простых списков данных. Однако часто бывает необходимо представить таблицы данных в программах с организацией данных в формате строк и столбцов, подобно ячейкам в рабочих листах Excel.

Нумерация элементов массива

Данная директива компилятора помещается в область объявлений модуля перед объявлениями любых переменных, констант или процедур. Нельзя помещать Option

Слайд 8 Многомерные массивы
Для этого необходимо использовать многомерные массивы. Так адрес каждой ячейки

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

является первым индексом, а второе (номер столбца) - вторым индексом массива.
Такой массив называется двумерным массивом. Добавив еще номер листа, получим трехмерный массив. VBA позволяет создавать массивы, имеющие до 60 измерений.

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

Слайд 9 Статические и динамические массивы
Массивы, не меняющие число своих элементов, называются статическими

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

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

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

Слайд 10 Объявление массивов
Объявление массива с использованием оператора Dim имеет следующий синтаксис:
Dim VarName([Subscripts]) [As Type] VarName - любое

имя массива, использующее допустимый идентификатор имени; Subscripts - измерение массива. Если размерность

массива больше единицы, то Subscripts разделяются запятыми.

Объявление массивов Объявление массива с использованием оператора Dim имеет следующий синтаксис: Dim VarName([Subscripts]) [As Type]  VarName - любое имя массива,

Слайд 11 Объявление массивов
Оператор Subscripts имеет следующий синтаксис:
[lower To] upper [,[lower To] upper].. lower - определяет нижний диапазон допустимых индексов для

массива (необязательный аргумент); upper - определяет верхний предел для индексов массива (обязательный

аргумент).

Объявление массивов Оператор Subscripts имеет следующий синтаксис: [lower To] upper [,[lower To] upper]..  lower - определяет нижний диапазон допустимых индексов для массива (необязательный

Слайд 12Примеры правильного объявления массивов: Dim A(10) As Integer - одномерный

статический строковый массив, включающий 10 элементов; Dim Array_Str (1 To

10) As String - одномерный статический строковый массив, включающий 10 элементов; Dim Array_Var() - динамический массив; Dim Array_Mult (0 To 5, 0 To 7) As Integer - двумерный статический массив целых чисел, включающий 6*8=48 элементов.

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

Примеры правильного объявления массивов:  Dim A(10) As Integer - одномерный статический строковый массив, включающий 10 элементов;

Слайд 13При объявлении массивов следует помнить, что включение оператора Subscripts в объявлении массива

создает статический массив с фиксированным числом элементов, пропуск оператора Subscripts в объявлении

массива создает динамический массив, а установка директивы компилятора Option Base влияет на общее число элементов в массиве.

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

При объявлении массивов следует помнить, что включение оператора Subscripts в объявлении массива создает статический массив с фиксированным числом элементов,

Слайд 14Ввод данных в массив
Ввод данных в массив можно осуществлять с

помощью:
Оператора ввода;
Оператора DIM (инициализация в момент создания);
Оператора присваивания.
Например:
DIM b() As

Double={0.9, 1.7, 2.3, 4.5}
Количество элементов не указано явно, а определяется по количеству чисел, заданных при инициализации.

Ввод данных в массивВвод данных в массив можно осуществлять с помощью:Оператора ввода;Оператора DIM (инициализация в момент создания);Оператора

Слайд 15Ввод данных в массив
Например:
DIM b() As Double
B = New Double()

{0.9, 1.7, 2.3, 4.5}
Массив создается в одной строке, а инициализируется

в другой.

Ввод данных в массивНапример:DIM b() As DoubleB = New Double() {0.9, 1.7, 2.3, 4.5}Массив создается в одной

Слайд 16 Использование массивов
Для доступа к элементу массива необходимо указывать имя массива,

за которым следует значение индекса, заключенное в круглые скобки.

Рассмотрим листинг

программы, показывающий элементарное объявление и использование массива (в качестве элементов массива используется факториал номера элемента массива):

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

Слайд 17 Использование массивов

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

Слайд 18 Использование массивов
При помощи вложенных циклов довольно легко можно организовать инициализацию

двумерного массива:

Использование массивов При помощи вложенных циклов довольно легко можно организовать инициализацию двумерного массива:

Слайд 19 Изменение размерности динамического массива
Если точно неизвестно, сколько элементов потребуется в

массиве – используется оператор ReDim, который переопределяет размерность массива, а во время

объявления не указывать его размерность. Синтаксис ReDim:
ReDim [Preserve] varname(subscripts) [As Type] [, varname(subscripts) [As Type]] varname - имя существующего массива; subscripts - размерность существующего массива; Type - любой тип VBA.

Изменение размерности динамического массива Если точно неизвестно, сколько элементов потребуется в массиве – используется оператор ReDim, который переопределяет

Слайд 20Необходимо использовать отдельный оператор As Type для каждого массива, который

определяется; Preserve - необязательный аргумент.
Его использование приводит к тому, что данные

уже имеющиеся в массиве, сохраняются после изменения его размерности.

Изменение размерности динамического массива

Необходимо использовать отдельный оператор As Type для каждого массива, который определяется; Preserve - необязательный аргумент. Его использование приводит

Слайд 21Примеры правильного использования оператора ReDim:
Dim Array_Month() As String - одномерный строковый динамический

массив ReDim Array_Month(29) - устанавливет размерность динамического массива равную 29 элементам ReDim Array_Month(1

To 30) - изменяет размер массива до 30 элемента ReDim Preserve Array_Month(1 To 31) - изменяет размер массива до 31 элемента, сохраняя содержимое Dim Array_DBL() As Single - объявляет динамический массив ReDim Array_DBL(2, 9) - делает массив двумерным ReDim Array_DBL(3, 7) - изменяет размер двумерного массива ReDim Preserve Array_DBL(1 To 3, 1 To 5) - изменяет последний размер массива, сохраняя содержимое

Примеры правильного использования оператора ReDim:Dim Array_Month() As String - одномерный строковый динамический массив ReDim Array_Month(29) - устанавливет размерность динамического массива

Слайд 22Функции Array
Функция Array возвращает массив элементов типа Variant из первоначального списка элементов,

перечисленных через запятую. Нумерация элементов в массиве начинается с нуля.

Обратиться к элементу массива можно, указав в скобках его номер (индекс).

Функции ArrayФункция Array возвращает массив элементов типа Variant из первоначального списка элементов, перечисленных через запятую. Нумерация элементов в массиве

Слайд 23Пример функции Array

Пример функции Array

Слайд 24Пример функции Array

Пример функции Array

Слайд 25 Функции LBound, UBound
Функции LBound, UBound возвращают нижнее и верхнее граничные значения индексов

статического или динамического массива.
Синтаксис: LBound (array_Name [, dimension]) UBound (array_Name [, dimension]) array_Name - имя массива dimension - целое число

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

Функции LBound, UBound Функции LBound, UBound возвращают нижнее и верхнее граничные значения индексов статического или динамического массива.Синтаксис: LBound

Слайд 26 Функции LBound, UBound

Функции LBound, UBound

Слайд 27 Очистка и удаление массивов при помощи Erase
Оператор Erase позволяет выполнять очистку для

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

данные в массиве остаются до тех пор, пока пользователь не присвоит новые значения элементам массива или пока VBA не освободится от массива.
Очистка и удаление массивов при помощи Erase Оператор Erase позволяет выполнять очистку для статических массивов и удаление -

Слайд 28Зачастую бывает, что в дальнейших вычислениях динамический массив ни при

каких обстоятельствах использоваться не будет, поэтому нецелесообразно «держать» его в

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


Очистка и удаление массивов при помощи Erase

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

Слайд 29Оператор Erase
Оператор Erase обнуляет (если массив статический) или очищает (если

массив динамический) массив.

Оператор Erase удаляет из памяти динамические массивы, освобождая область памяти,

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

Оператор EraseОператор Erase обнуляет (если массив статический) или очищает (если массив динамический) массив.Оператор Erase удаляет из памяти динамические массивы,

Слайд 30 Термин «обнуление» можно применить только к массиву числового типа.
Обратите внимание,

что оба массива при таком способе очистки будут возвращены в

исходное состояние, которое они имели сразу после объявления:
статический Massiv1 сохранит размерность (4, 3);
динамический Massiv2 не сохранит размерность ().

Термин «обнуление» можно применить только к массиву числового типа. Обратите внимание, что оба массива при таком

Слайд 31 Второй способ очистки (обнуления) массивов
Динамический массив можно очистить (обнулить) без

использования цикла с помощью оператора ReDim. Просто переопределите его с той

же размерностью.
Пример:
Dim Massiv() As Double
'переопределяем массив
ReDim Massiv(5, 6, 8)
'очищаем массив
ReDim Massiv(5, 6, 8)

Второй способ очистки (обнуления) массивов  Динамический массив можно очистить (обнулить) без использования цикла с

Слайд 32 Поведение оператора Erase для статических массивов зависит от конкретного типа элементов массива

(см. таблицу):

Поведение оператора Erase для статических массивов зависит от конкретного типа элементов массива (см. таблицу):

Обратная связь

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

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

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


Для правообладателей

Яндекс.Метрика