Фрагментирование кода

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

Константы

End Sub

End Sub

Конечно, этот пример не имеет практического смысла, но действие IsArray показано в нем ясно. Во второй строке объявлен массив, в третьей – логическая переменная ArrayBool. Далее этой переменной присваивается значение, возвращенное функцией IsArray (True или False). Инструкция If использована для проверки результата IsArray и вывода сообщения, если значение переменной ArrayBool равно True. Подробно эта инструкция описана в разделе «Управляющая инструкция If-Then-Else» на стр. 82.

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

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: