次の方法で共有


InvisibleApp.TraceFlags プロパティ (Visio)

Microsoft Visio のインスタンスの存続中に記録されたイベントを取得または設定します。 値の取得と設定が可能です。

構文

TraceFlags

InvisibleApp オブジェクトを表す変数。

戻り値

Long

注釈

TraceFlags プロパティの値は、次の値の組み合わせになります。

定数 説明
visTraceEvents &H1 イベントの発生回数
visTraceAdvises &H2 出力アドバイスの呼び出し数
visTraceAddonInvokes &H4 アドオン呼び出し数
visTraceCallsToVBA &H8 VBA 呼び出し数

visTraceEvents フラグを設定すると、ほとんどのイベントが発生時に記録され、イミディエイト ウィンドウに表示されます。 多くの場合、外部エージェントがイベントの受信や応答を行わない場合にもイベントは記録されます。 ただしイベントが受信されていないことを Visio が認識し、イベントが記録されない場合もあります。 Visio では、アイドル状態のイベントやアドバイスも記録されません。 また、あるイベントを特殊化したイベントが存在する場合、このイベントは記録されません。 たとえば、ShapeAdded イベントは個別の SelectionAdded イベントから作成されるため、イミディエイト ウィンドウには ShapeAdded イベントは記録されますが、SelectionAdded イベントは記録されません。

visTraceEvents を設定した場合、次の文字列が記録されます。

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

-event: の後の数値は発生したイベントのコードを表します。 この場合、"0x8040" は ShapeAdded イベントのコードです。 イベント コードの後のテキストはイベントによって異なります。

visTraceAdvises フラグを設定すると、Visio がイベント ハンドラーのプロシージャを呼び出す直前にイミディエイト ウィンドウにログが 1 行書き込まれ、イベント ハンドラーから制御が返された直後に別のログが 1 行書き込まれます。 このようなプロシージャには、ThisDocument のプロシージャなどの、Microsoft Visual Basic for Applications (VBA) プロジェクトのイベント プロシージャがあります。 表示されるコードの例を次に示します。

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

これらの文字列はイベント ハンドラーへの呼び出しや、イベント ハンドラーからの戻り値を示します。 シーケンス番号はこのイベントが Visio で 4 番目に発生したイベントであることを示します。 イベントのコードは "0x8040" で、Visio が呼び出したインターフェイスのアドレスは "0x40097598" です。

visTraceAddonInvokes フラグを設定すると、Visio が EXE または VSL アドオンを呼び出した時期、および Visio に制御が戻った時期が記録されます。 次に例を示します:

>invokeAO: SHOWARGS.EXE 
<invokeAO: completed 

visTraceAddonInvokes フラグを設定すると、存在しないアドオンの呼び出し処理も記録されます。 たとえばセルの数式が =RunAddon("xxx") で、"xxx" という名前のアドオンがない場合、"InvokeAO: Failed to map 'xxx' to known Add-on" というメッセージが記録されます。

visTraceCallToVBA フラグを設定すると、イベント プロシージャへの呼び出し以外で VBA を呼び出す直前にイミディエイト ウィンドウにログが 1 行書き込まれ (VBA イベント プロシージャへの呼び出しを記録するには visTraceAdvises を使用します)、VBA から Visio に制御が返された直後に別のログが 1 行書き込まれます。 このフラグによって記録される対象は、マクロの呼び出し、RunAddon や CallThis オペランドを使用するセルの評価結果によって発生した VBA プロシージャの呼び出し、およびカスタム メニューやツールバーの項目を選択したことによって発生した呼び出しです。 次に例を示します:

>invokeVBA: Module1.MyMacro 
<invokeVBA: completed 

VBA プロジェクトを含んだ図面が開いていない場合、イミディエイト ウィンドウにメッセージは表示されません。 VBA プロジェクトを含んだ図面が開いている場合は、記録される数行分のメッセージがキューに入ります。 ただし VBA プロジェクトを含んだ図面が長期間使用できない場合、メッセージは失われます。 VBA によってリセットした場合、または解除されていないブレークポイントがある場合にも、メッセージは失われます。

VBA プロジェクトのコードは標準の Debug.Print ステートメントを使用して、Visio で記録されたログにメッセージを挿入することができます。 VBA プロジェクト以外のコードは Document.VBProject.ExecuteLine("Debug.Print ""somestring""") を使用して、イミディエイト ウィンドウにメッセージを記録できます。

TraceFlags プロパティは、レジストリの [Application] セクションにある TraceFlags エントリに記録されます。

この VBA マクロは、TraceFlags プロパティを使用して、イベント、アドバイス、アドオン呼び出し、および Visual Basic の呼び出しをイミディエイト ウィンドウに記録する方法を示します。

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

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。