Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Пять функций для работы с массивами
С массивами VBA чаще всего используют пять функций — Array, Erase, IsArray, LBound и UBound. Сейчас мы кратко расскажем о каждой из них. Функция Array Она позволяет создавать массив в ходе выполнения программы, без предварительного описания: Sub МассивБезОписания() Data6 = Array("Иванов", 60, #3/21/1947#) MsgBox Data6(1) & ", возраст " & Data6(2) & " родился " & Data6(3) End Sub Во второй строке программаМассивБезОписания функцией Array создается одномерный 3-элементный массив типа Variant фиксированного размера. Помните, что функция Array всегда возвращает массив Variant и использует нумерацию, заданную инструкцией Option Base. Функция Erase Она используется для удаления данных, хранимых в элементах массива. Если это массив фиксированного размера, функция Erase лишь очищает его, а память, выделенная массиву, остается за ним. Динамический массив уничтожается функцией Erase полностью. Программа ФункцияErase демонстрирует удаление всех значений, записанных в массив фиксированного размера. Sub ФункцияErase() Dim Data7(2) As Integer Data7(1) = Int(100 * Rnd()) Data7(2) = Int(100 * Rnd()) MsgBox "Лотерейные номера: " & Data7(1) & ", " & Data7(2) Erase Data7 MsgBox "Лотерейные номера: " & Data7(1) & ", " & Data7(2) End Sub Здесь элементам массива присваиваются значения и выводятся в информационном окне. Затем для удаления содержимого массива вызывается функция Erase. Второй вызов функции MsgBox свидетельствует, что во всех элементах Data7 содержатся нули. В следующем примере показан вызов функции Erase для динамического массива. Sub EraseДинамичМассив() Dim Data8() As Integer ReDim Data8(2) Data8(1) = Int(100 * Rnd()) Data8(2) = Int(100 * Rnd()) MsgBox " Лотерейные номера: " & Data8(1) & ", " & Data8(2) Erase Data8 MsgBox " Лотерейные номера: " & Data8(1) & ", " & Data8(2) End Sub Выполнение программы EraseДинамичМассив приводит к ошибке в строке 8, потому что функция Erase в предыдущей строке освободила всю память, занятую динамическим массивом. После этого VBA уже не может работать с индексами Data8, и обращение к этому массиву вызывает ошибку. Функция IsArray Эта встроенная функция VBA позволяет проверить, является ли некоторая переменная массивом. IsArray принимает один аргумент и возвращает True (если переменная является массивом) или False (если переменная не является массивом). Такая операция полезна, например, когда Вы вызываете функцию, возвращающую массив, но не уверены, что она действительно вернет его, а не обычную переменную. Действие IsArray продемонстрировано ниже.
Sub ФункцияIsArray () Dim Data9(2) As Integer Dim ArrayBool As Boolean ArrayBool = IsArray(Data9) If ArrayBool = True Then MsgBox "Data9 является массивом." End If End Sub Конечно, этот пример не имеет практического смысла, но действие IsArray показано в нем ясно. Во второй строке объявлен массив, в третьей – логическая переменная ArrayBool. Далее этой переменной присваивается значение, возвращенное Функцией IsArray (True или False). Инструкция If использована для проверки результата IsArray и вывода сообщения, если значение переменной ArrayBool равно True. Подробно эта инструкция описана в разделе «Управляющая инструкция If-Then-Else» на стр. 72. Функции LBound и UBound Они помогут Вам определить верхнюю и нижнюю границы индексов массива, как показано в следующем примере: Sub Lbound_UBound() Dim Data10(4 To 15) As Integer MsgBox "Нижняя граница массива" & LBound(Datal0) & "." MsgBox "Верхняя граница массива " & UBound(Datal0) & "." End Sub Замечание: Применение этих функций к обычной переменной или динамическому массиву, не описанному инструкцией ReDim, вызывает ошибку при выполнении программы. Чтобы избежать этого, перед вызовом функций LBound и UBound проверьте переменную функцией IsArray. Константы Константой называется значение, которое не изменяется в ходе выполнения программы. Константы VBA мало отличаются от подобных элементов других языков программирования и используются (как и предполагает их название) для хранения констант – постоянных величин. Константы описываются почти так же, как и другие переменные, но с одним исключением – одновременно с объявлением константе присваивается значение, изменить которое потом уже нельзя. Попытка позже присвоить значение константе приведет к ошибке. Вот пример описания константы. Const MinVal As Integer = 1 Для описания константы используется ключевое слово Const, за которым указывают имя константы, её тип (один из стандартных типов VBA, кроме пользовательского) и значение. Если в описании Вы не зададите тип данных, он будет присвоен константе автоматически, в соответствии с её значением. Обратите внимание, что для задании константы применяют и выражения:
Const Con1 As Integer = 2 * 2 В одной инструкции Const можно описать несколько констант, разделив их запятыми: Const Con1 As Integer = 5, Con2 As Integer = 6, Con3 As Integer = 7 Массивы констант в VBA задавать нельзя, во всем же остальном они похожи на обычные переменные, если, конечно, Вы при выполнении программы не пытаетесь изменить их значения.
|
||||||
Последнее изменение этой страницы: 2021-12-15; просмотров: 115; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.15.27.232 (0.007 с.) |