Основы офисного программирования и документы Word



              

Переменные, которые живут долго - часть 2


Листинг 1.52.

(html, txt)

В момент создания задается имя переменной и, возможно, инициализирующее ее значение. Тип, как я уже говорил, установлен по умолчанию.

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

Public Sub CreateVar() 'Создание переменных - хранителей информации With ActiveDocument.Variables If Not ExistVar("Counter") Then 'Добавляем переменную .AddName:="Counter", Value:=0 End If End With

End Sub

Public Function ExistVar(Name As String) As Boolean 'Определяет наличие переменнойName в коллекции Variables Dim MyVar As Variable ExistVar = False For Each MyVar In ActiveDocument.Variables If MyVar.Name =Name Then ExistVar = True: Exit For End If Next MyVar End Function

Листинг 1.53.

(html, txt)

При попытке повторного добавления одной и той же переменной в коллекцию Variables возникает ошибка. В тоже время процедура, в которой происходит добавление, может выполняться многократно. Поэтому я предусматриваю соответствующую проверку на существование переменной с заданным именем в коллекции Variables. Может возникнуть вопрос, куда поместить процедуру CreateVar, создающую переменную. Я поместил ее в процедуру, обрабатывающую событие "Open" документа, но можно упрятать этот вызов и более глубоко. Рассмотрим теперь, как происходит работа с переменной Counter:

Public Sub CheckCounter() Const Limit = 10 'Счетчик Counter может быть использован в любой процедуре, 'позволяя следить за числом ее выполнения With ActiveDocument If .Variables("Counter") > Limit Then 'Исчерпан лимит нормальной работы демо-версии Call MsgBox("Исчерпан лимит работы демо-версии", _ vbCritical, "Конец работы!") Else ' продолжаем нормальную работу Dim myLocal As Integer 'Локальные переменные могут работать с глобальным счетчиком myLocal = .Variables("Counter") Debug.Print "Счетчик = "; myLocal




Содержание  Назад  Вперед