Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Вызов одной программы из другойСодержание книги
Поиск на нашем сайте
В 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 с.) |