Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

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

Поиск

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

Передача данных при вызове программы

Вызывая подпрограмму, Вы вправе передать в нее переменные или значения. Эта возможность еще более расширяет область применения подпрограмм, позволяя выполнять одни и те же действия с различными исходными данными. Рассмотрим в качестве примера подпрограмму DisplayMessage. Сейчас она выводит сообщение Данные введены. Предположим, что кроме этого мы хотим знать, какое именно значение было введено, например Было введено число 500. Проще его передать в подпрограмму DisplayMessage аргумент (это можно сделать двумя способами; см. следующий раздел). Как это сделать, показано в следующем примере.

Sub ПередачаАргумента()

Dim Range1 As Range

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

Range1.Value = 500

DisplayMessage2 Rangel.Value

End Sub

Sub DisplayMessage2(Value1)

MsgBox "Было введено число " & Value1

End Sub

Здесь есть два интересных момента. Во-первых, обращение к подпрограмме DisplayMessage2 в ПередачаАргумента содержит аргумент Range1. Value. Во-вторых, в первой строке DisplayMessage2 в круглых скобках задано имя переменной Value1. Она принимает значение аргумента, указанного в вызове подпрограммы DisplayMessage2, и затем используется для вывода соответствующего значения в информационном окне.



Поделиться:


Последнее изменение этой страницы: 2021-12-15; просмотров: 59; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.133.126.241 (0.006 с.)