Вызов одной программы из другой
Константы
End Sub
Функции LBound и UBound
End Sub
Конечно, этот пример не имеет практического смысла, но действие IsArray показано в нем ясно. Во второй строке объявлен массив, в третьей – логическая переменная ArrayBool. Далее этой переменной присваивается значение, возвращенное Функцией IsArray (True или False). Инструкция If использована для проверки результата IsArray и вывода сообщения, если значение переменной ArrayBool равно True. Подробно эта инструкция описана в разделе «Управляющая инструкция If-Then-Else» на стр. 72.
Они помогут Вам определить верхнюю и нижнюю границы индексов массива, как показано в следующем примере:
Sub Lbound_UBound()
Dim Data10(4 To 15) As Integer
MsgBox "Нижняя граница массива" & LBound(Datal0) & "."
MsgBox "Верхняя граница массива " & UBound(Datal0) & "."
Замечание:
Применение этих функций к обычной переменной или динамическому массиву, не описанному инструкцией 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 задавать нельзя, во всем же остальном они похожи на обычные переменные, если, конечно, Вы при выполнении программы не пытаетесь изменить их значения.
В VBA допускается вызов одной программы из другой, что позволяет разделять код на логически обособленные фрагменты. Эта возможность имеет два «плюса».
§ Если Вам нужно несколько раз выполнить одну и ту же последовательность действий, Вы вправе задать её всего один раз, оформив в виде подпрограммы, а затем по мере необходимости вызывать из других программ. При этом облегчается и её редактирование, поскольку все изменения Вы вносите только однажды.
§ Код VBA, разделенный на подпрограммы, обретает четкую логическую структуру; его легче разрабатывать, отлаживать и обслуживать.
Фрагментируя код, обязательно руководствуйтесь правилами логики. Одна подпрограмма должна отвечать за выполнение одной операции. Не увлекайтесь: чрезмерное дробление кода приведет к тому, что у Вас будет отдельная подпрограмма для каждой инструкции. Решение вопроса, выделять или не выделять действие в подпрограмму, зависит в основном от Ваших желаний и опыта. В следующем примере, в программе ВызовПодпрограммы, для вывода на экран сообщения о вводе данных мы используем подпрограмму DisplayMessage.
Sub ВызовПодпрограммы()
Dim Range1 As Range
Set Range1 = Worksheets(1).Range("A1")
Range1.Value = 500
DisplayMessage