Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VBA_lektsii.doc
Скачиваний:
11
Добавлен:
01.04.2025
Размер:
3.91 Mб
Скачать

4. Константы

Константой называется значение, которое не изменяется в ходе выполнения программы. Константы 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 задавать нельзя, во всем же остальном они похожи на обычные переменные, если, конечно, вы при выполнении программы не пытаетесь изменить их значения.

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

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

В VBA допускается вызов одной программы из другой, что позволяет разделять код на логически обособленные фрагменты. Эта возможность имеет два «плюса»:

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

  • код VBA, разделенный на подпрограммы, обретает четкую логическую структуру; его легче разрабатывать, отлаживать и обслуживать.

Фрагментируя код, обязательно руководствуйтесь правилами логики. Одна подпрограмма должна отвечать за выполнение одной операции. Не увлекайтесь: чрезмерное дробление кода приведет к тому, что для каждой инструкции у вас будет отдельная подпрограмма. Решение вопроса, выделять или не выделять действие в подпрограмму, зависит в основном от ваших желаний и опыта. В следующем примере в программе ВызовПодпрограммы для вывода на экран сообщения о вводе данных мы используем подпрограмму DisplayMessage:

Sub ВызовПодпрограммы()

Dim Range1 As Range

Set Range1 = Worksheets(1).Range("A1")

Range1.Value = 500

DisplayMessage

End Sub

Sub DisplayMessage()

MsgBox "Данные введены."

End Sub

ВызовПодпрограммы вводит данные в ячейку A1 первого рабочего листа и вызывает в строке 5 подпрограмму DisplayMessage, которая выводит на экран сообщение и возвращает управление ВызовПодпрограммы:

ЗАМЕЧАНИЕ. В действительности подпрограммы, подобные DisplayMessage, не имеют практического смысла. С тем же успехом вызов функции MsgBox можно вставить и в саму DisplayMessage. Другое дело, если сообщение о вводе данных должно касаться нескольких программ. В этом случае подпрограмма DisplayMessage окажется полезной хотя бы для того, чтобы все программы использовали в сообщении один и тот же текст. Кроме того, выделение сообщения в отдельную программу облегчает его редактирование, так как изменения придется вносить в одно место.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]