英語で読む

次の方法で共有


Event.SetFilterObjects メソッド (Visio)

オブジェクト型の配列と、各オブジェクトのイベントをフィルター処理する方法を示す True または False の 値を指定します。

構文

SetFilterObjects( _Objects()_ )

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

パラメーター

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

戻り値

なし

解説

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

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

配列内の要素の数は 2 の倍数です。

  • 最初の要素には、オブジェクトの種類 (visTypePagevisTypeGroupvisTypeShapevisTypeForeignObjectvisTypeGuidevisTypeDoc のいずれか 1 つ) が格納されます。

  • 2 番目の要素には、そのオブジェクトのイベントを受信するかどうかを示す True または False 値が格納されます (True はオブジェクトのイベントを受信し、False はオブジェクトのイベントを受信しません)。

イベントがオブジェクトのイベント フィルターを通過するには、次の条件を満たす必要があります。

  • オブジェクトの種類が有効である。

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

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

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

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

たとえば、図形またはガイドが発するイベントのみを受信するには、次のような配列を渡します。

 
 Dim aFilterObjects(1 To (2 * 2)) As Long 
 aFilterObjects(1) = visTypeShape 
 aFilterObjects(2) = True 
 aFilterObjects(3) = visTypeGuide 
 aFilterObjects(4) = True 

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

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