Вызов одной программы из другой

Константы

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