Compartir a través de


Propiedad Application.TraceFlags (Visio)

Obtiene o establece los eventos registrados durante una instancia de Microsoft Visio. Lectura y escritura.

Sintaxis

expresión. TraceFlags

expresión Variable que representa un objeto Application.

Valor devuelto

Long

Observaciones

El valor de la propiedad TraceFlags puede ser una combinación de los valores siguientes.

Constante Valor Descripción
visTraceEvents &H1 Repeticiones de eventos
visTraceAdvises &H2 Llamadas de aviso salientes
visTraceAddonInvokes &H4 Invocaciones de complementos
visTraceCallsToVBA &H8 Invocaciones de VBA

Si se establece la marca visTraceEvents, Visio registra la mayor parte de los eventos a medida que éstos tienen lugar y los muestra en la ventana Inmediato. En la mayoría de los casos, esto se produce aunque no haya ningún agente externo escuchando o respondiendo al evento. En algunos casos, Visio detecta que no hay nadie escuchando el evento y no lo registra. Visio tampoco registra los eventos o avisos inactivos. Por otra parte, algunos eventos son especializaciones de otros eventos y no se registran. Por ejemplo, el evento SelectionAdded se produce a partir de eventos ShapeAdded distintos, por lo que la ventana Inmediato registra los eventos ShapeAdded, pero no los eventos SelectionAdded.

Ésta es una cadena que Visio podría registrar cuando está establecido el indicador visTraceEvents:

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

El número que aparece a continuación de -event: es el código del evento que se produjo. En este caso, 0x8040 es el código del evento ShapeAdded. El código que sigue al código de evento difiere de un evento a otro.

Si se establece la marca visTraceAdvises, en la ventana Inmediato se escribirá una línea justo antes de que Visio llame a un procedimiento del controlador de eventos y otra justo después de que dicho controlador responda. Entre estos procedimientos se encuentran los procedimientos de eventos de los proyectos de Microsoft Visual Basic para Aplicaciones (VBA); por ejemplo los procedimientos de ThisDocument. Éste es un ejemplo de lo que podría ver:

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

Estas cadenas indican la llamada y la respuesta de un controlador de eventos. El número de secuencia también indica que este evento fue el cuarto evento desencadenado por Visio. El código del evento es 0x8040, y la dirección de la interfaz a la que llamó Visio, 0x40097598.

Si se establece la marca visTraceAddonInvokes, se registrará el momento en el que Visio invoca un complemento de VSL o EXE, así como el momento en el que Visio recupera el control. A continuación le mostramos un ejemplo:

>invokeAO: SHOWARGS.EXE 
<invokeAO: completed 

Si se establece la marca visTraceAddonInvokes, también se rastreará los intentos de invocar complementos que no están presentes. Por ejemplo, si la fórmula de una celda es =RunAddon("xxx") y no existe ningún complemento denominado "xxx", se registrará el mensaje "InvokeAO: Failed to map 'xxx' to known Add-on".

Si se establece la marca visTraceCallToVBA flag, en la ventana Inmediato se escribirá una línea justo antes de que realice una llamada a VBA distinta de una llamada a un procedimiento de evento (para registrar las llamadas a los procedimientos de eventos de VBA, use visTraceAdvises) y otra línea justo después de que VBA devuelva el control a Visio. Esta marca rastrea las invocaciones de las macros, las llamadas a los procedimientos de VBA resultantes de la evaluación de las celdas que hacen uso de los operandos RunAddon o CallThis y las llamadas resultantes de la selección de elementos de las barras de herramientas o los menús personalizados. A continuación le mostramos un ejemplo:

>invokeVBA: Module1.MyMacro 
<invokeVBA: completed 

En la ventana Inmediato no aparecerá ningún mensaje a menos que esté abierto algún documento que tenga un proyecto de VBA. Visio pone en la cola un pequeño número de mensajes para registrarlos cuando se abra dicho documento. Sin embargo, los mensajes se perderán si durante largos períodos de tiempo no está disponible ningún documento con un proyecto. También se perderán si se restablece VBA o si hay puntos de interrupción sin descartar.

El código de los proyectos de VBA puede intercalar sus mensajes con los registrados por Visio mediante instrucciones Debug.Print estándar. El código de los proyectos escritos en otro lenguaje puede registrar mensajes en la ventana Inmediato mediante el uso de Document.VBProject.ExecuteLine("Debug.Print ""algunacadena""").

La propiedad TraceFlags se registra en la entrada TraceFlags de la sección Application del Registro.

Ejemplo

Esta macro de VBA muestra cómo utilizar la propiedad TraceFlags para registrar eventos, avisos, invocaciones de complementos e invocaciones de Visual Basic en la ventana Inmediato.

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

Soporte técnico y comentarios

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.