Свойство Application.TraceFlags (Visio)

Получает или настраивает события, зарегистрированные во время экземпляра Microsoft Visio. Для чтения и записи.

Синтаксис

выражение. Индикаторы TraceFlags

выражение: переменная, представляющая объект Application.

Возвращаемое значение

Long

Примечания

Значение свойства TraceFlags может быть комбинацией следующих значений.

Константа Значение Описание
visTraceEvents &H1 Количество вхождений событий
visTraceAdcommandes &H2 Исходящие звонки с советами
visTraceAddonInvokes &H4 Вызовы надстроек
visTraceCallsToVBA &H8 Вызовы VBA

Установка флага visTraceEvents приводит к тому, что Visio регистрирует большинство событий по мере их возникновения и отображает их в окне мгновенных данных. В большинстве случаев это происходит, даже если внешний агент не прослушивает событие или не реагирует на него. В некоторых случаях Visio знает, что для события нет прослушивателя, и не регистрирует эти события. Visio также не регистрирует события простоя и не советы. Кроме того, некоторые события являются специализациями других событий и не записываются. Например, событие SelectionAdded создается из отдельных событий ShapeAdded , поэтому в окне интерпретации записываются события ShapeAdded , но не события SelectionAdded .

Вот строка, которую Visio может регистрировать, если настроен параметр visTraceEvents :

-event: 0x8040 /doc=1 /page=1 /shape=Sheet.1

Число после -event: — это код произошедшего события. В данном случае 0x8040 — код для события ShapeAdded . Текст после кода события отличается от события к событию.

Установка флага visTraceAdvises записывает строку в окно мгновенных данных непосредственно перед вызовом Visio процедуры обработчика событий, а другую строку сразу после возврата обработчика событий. Сюда относятся процедуры событий в проектах Microsoft Visual Basic для приложений (VBA), например процедуры в ThisDocument. Вот пример того, что вы можете увидеть:

>advise seq=4 event=0x8040 sink=0x40097598 
<advise seq=4 

Эти строки указывают на вызов и возврат из обработчика событий. Порядковый номер также указывает, что это событие было четвертым, запущенным приложением Visio. Код события — 0x8040, а адрес интерфейса, вызываемого Visio, — 0x40097598.

Установка записей флага visTraceAddonInvokes , когда Visio вызывает надстройку EXE или VSL и когда Visio восстанавливает управление. Пример:

>invokeAO: SHOWARGS.EXE 
<invokeAO: completed 

Установка флага visTraceAddonInvokes также отслеживает попытки вызова надстроек, которые отсутствуют. Например, если формула ячейки — =RunAddon("xxx"), а надстройка с именем "xxx" отсутствует, регистрируется сообщение "InvokeAO: не удалось сопоставить xxx с известной надстройкой".

Установка флага visTraceCallToVBA приводит к записи строки в окно мгновенных данных непосредственно перед вызовом VBA, отличного от вызова процедуры обработки событий (используйте visTraceAdvises для регистрации вызовов процедур обработки событий VBA), и еще одна строка сразу после того, как VBA возвращает управление Visio. Этот флаг отслеживает вызовы макросов, вызовы процедур VBA, возникающие в результате оценки ячеек, использующих операнды RunAddon или CallThis, и вызовы, вызванные выбором элементов настраиваемого меню или панели инструментов. Пример:

>invokeVBA: Module1.MyMacro 
<invokeVBA: completed 

Сообщение не отображается в окне интерпретации, если не открыт документ с проектом VBA. Visio ставит в очередь небольшое количество сообщений для регистрации при открытии такого документа. Однако сообщения пропадают, если документ с проектом недоступен в течение длительного времени. Сообщения также теряются, если VBA сбрасывается или если есть незакрытые точки останова.

Код в проектах VBA может перемежать свои сообщения с сообщениями, зарегистрированными в Visio, используя стандартные операторы Debug.Print . Код в проектах, отличных от VBA, может регистрировать сообщения в окне мгновенных данных с помощью Document.VBProject.ExecuteLine("Debug.Print", ""somestring""").

Свойство TraceFlags записывается в запись TraceFlags раздела Application реестра.

Пример

В этом макросе VBA показано, как использовать свойство TraceFlags для регистрации событий, советов, вызовов надстроек и вызовов Visual Basic в окне мгновенных данных.

 
Public Sub TraceFlags_Example() 
 
 Application.TraceFlags = visTraceEvents + visTraceAdvises + _ 
 visTraceAddonInvokes + visTraceCallsToVBA 
 
End Sub

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.