共用方式為


Event.SetFilterCommands 方法 (Visio)

指定命令範圍的陣列,以及指出如何篩選每個命令範圍之事件的 TrueFalse 值。

語法

expressionSetFilterCommands( _Commands()_ )

表達 代表 Event 物件的變數。

參數

名稱 必要/選用 資料類型 描述
Commands () 必要 Long 命令範圍及 TrueFalse 值的陣列,用於指定篩選每個命令範圍之事件的方法

傳回值

註解

當用 AddAdvise 方法建立的 Event 物件新增至來源物件的 EventList 集合時,預設表現方式是所有出現的該項事件都會傳送至事件接收器。 SetFilterCommands 方法會提供依據命令識別碼略過選取之事件的方法。

傳送至 SetFilterCommandsCommands() 參數是以下列方式定義的陣列。

Commands() 中的元素數目是 3 的倍數:

  • 第一個元素含有範圍 (VisUICmds 的任何成員) 的開始命令識別碼。

  • 第二個元素含有範圍 (VisUICmds 的任何成員) 的結束命令識別碼。

  • 第三個元素含有 TrueFalse 值,指出您是否正在聆聽該命令範圍的事件 (值則為 True 會聆聽事件,值為 False 則會排除事件)。

如果事件要能順利通過命令篩選器,則必須滿足下列條件:

  • 必須具備有效的命令識別碼。

  • 如果所有篩選器為 True,事件必須至少符合一個篩選器。

  • 如果所有篩選器為 False,事件不得與任何篩選器相符。

  • 如果篩選器是 TrueFalse 的混合,事件必須至少符合一個 True 篩選器且不得與任何 False 篩選器相符。

如果陣列中沒有 True 範圍,則會將事件視為 True

例如,若要設定可封鎖單一命令的陣列,請使用下列程式碼:

 
    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 支援與意見反應