End Function. Область видимости подпрограмм и функций

End Sub

Область видимости подпрограмм и функций

End Sub

End If

End Sub

Сохраняемые переменные

Вы уже знаете, что при объявлении переменных используются ключевые слова Dim и Public. Для описания же переменных на уровне процедуры применяется еще одно ключевое слово — Static. Переменная, объявленная знакомым нам способом, с помощью инструкции Dim, прекращает свое существование после завершения программы, в которой она была описана, то есть после слов End Sub или End Function. Определив переменную как Static (сохраняемую), мы продлим время ее жизни до завершения работы всех программ, включая и ту, в которой переменная была описана.

Sub СтатическаяПеременная()

СтатическаяНестатическая

СтатическаяНестатическая

Sub СтатическаяНестатическая()

Static Var1 As String

Dim Var2 As String

If Varl = "" Then

Var1 = "Var1: Статическая переменная"

Var2 = "Var2: Нестатическая переменная "

MsgBox Varl

MsgBox Var2

В программе СтатическаяПеременная дважды вызывается программа СтатическаяНестатическая. При первом вызове определяется сохраняемая переменная Varl и обычная переменная Var2. Затем в инструкции If переменная Varl сравнивается с пустой строкой. Результат положительный, поскольку пока этой переменной значение не присвоено. В инструкции If переменным Varl и Var2 присваиваются строковые значения, которые перед завершением работы СтатическаяНестатическая отображаются в информационных окнах. Затем управление возвращается в СтатическаяПеременная, и СтатическаяНестатическая вызывается второй раз. Переменная Varl, объявленная как Static, сохранила свое значение, поэтому второе сравнение приводит к отрицательному результату. Повторное присвоение значений Varl и Var2 не происходит. Когда переменная Varl выводится на экран, в окне отображено ее прежнее значение. Переменная же Var2 при повторном вызове СтатическаяНестатическая была создана заново, поэтому в ее окне мы увидим пустую строку.

У подпрограмм и функций только два уровня видимости — модуля и проекта. По умолчанию все программы доступны на уровне проекта, то есть их можно вызывать из любого модуля проекта. При желании Вы можете объявлять такие программы с ключевым словом Public:

Public Sub ПрограммаУровняПроекта()

Dim Var1 As Integer

Var1 = 1

MsgBox AddOne(Varl)

Public Function AddOne(ByRef Var1)

AddOne = Var1 + 1

Поскольку все программы по умолчанию доступны на уровне проекта, слово Public используется в основном для того, чтобы яснее отделить их от программ уровня модуля. Если Вы опустите слово Public, никаких изменений не произойдет.

Чтобы перевести подпрограмму или функцию на уровень модуля, объявите ее с ключевым словом Private. Помните, что такие программы не могут запускаться сами по себе. Их можно только вызывать из других программ. Это иллюстрируется следующим примером.

Sub ВызовПрограммыУровняМодуля()

Var1 = GetRand

ПрограммаУровняМодуля Var1


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



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