Event.SetFilterCommands メソッド (Visio)

コマンド範囲と True または False の値で構成される配列を指定します。これらの値は、各コマンド範囲に関連するイベントのフィルター方法を表します。

構文

SetFilterCommands( _Commands()_ )

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

パラメーター

名前 必須 / オプション データ型 説明
Commands() 必須 Long コマンド配列と True または False の値で構成される配列を指定します。これらの値は、各コマンド範囲に関連するイベントのフィルター方法を表します。

戻り値

なし

解説

AddAdvise メソッドで作成された Event オブジェクトがソース オブジェクトの EventList コレクションに追加された場合、既定の動作では、発生したすべてのイベントがイベント シンクに渡されます。 SetFilterCommands メソッドを使用すると、コマンド ID に基づいて選択されたイベントを無視することができます。

SetFilterCommands に渡されるパラメーター Commands() は、次の方法によって定義される配列です。

Commands() 内の要素の数は 3 の倍数です。

  • 最初の要素には、範囲の先頭にあるコマンド ID (VisUICmds のメンバー) が格納されます。

  • 第 2 の要素には、範囲の最後にあるコマンド ID (VisUICmds のメンバー) が格納されます。

  • 3 番目の要素には、コマンドの範囲に関連するイベントを受信するかどうかを示す True または False の値が格納されます (True はイベントを受信し、False はイベントを受信しません)。

イベントがコマンド フィルターを通過するには、次の条件を満たす必要があります。

  • コマンド ID が有効である。

  • すべてのフィルターが True の場合は、イベントが 1 つ以上のフィルターと一致する。

  • すべてのフィルターが False の場合は、イベントがいずれのフィルターとも一致しない。

  • フィルターに TrueFalse の両方が含まれている場合は、イベントが 1 つ以上の True フィルターと一致し、いずれの False フィルターとも一致しない。

配列に True の範囲がない場合、イベントは True と見なされます。

たとえば、1 つのコマンドを除外する配列を設定するには、次のように指定します。

 
    Dim aFilterCommands(1 To (1 * 3)) As Long  
 
    'Ignore the layout command. 
    aFilterCommands(1) = visCmdLayoutDynamic  
    aFilterCommands(2) = visCmdLayoutDynamic  
    aFilterCommands(3) = False 

[最背面へ移動] コマンドのみを受信する配列を設定するには、次のように指定します。

 
    Dim aFilterCommands(1 To (3 * 3)) As Long  
 
    'Pay attention to the "Send to Back" command.  
    aFilterCommands(1) = visCmdObjectSendToBack  
    aFilterCommands(2) = visCmdObjectSendToBack  
    aFilterCommands(3) = True  
 
    'Ignore any command IDs before the "Send to Back" command.  
    aFilterCommands(4) = visCmdFirst  
    aFilterCommands(5) = visCmdObjectSendToBack - 1  
    aFilterCommands(6) = False  
 
    'Ignore any command IDs after the "Send to Back" command.  
    aFilterCommands(7) = visCmdObjectSendToBack + 1  
    aFilterCommands(8) = visCmdLast  
    aFilterCommands(9) = False 

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

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