Event.SetFilterCommands 方法 (Visio)
指定命令範圍的陣列,以及指出如何篩選每個命令範圍之事件的 True 或 False 值。
語法
expression。 SetFilterCommands
( _Commands()_
)
表達 代表 Event 物件的變數。
參數
名稱 | 必要/選用 | 資料類型 | 描述 |
---|---|---|---|
Commands () | 必要 | Long | 命令範圍及 True 或 False 值的陣列,用於指定篩選每個命令範圍之事件的方法 |
傳回值
無
註解
當用 AddAdvise 方法建立的 Event 物件新增至來源物件的 EventList 集合時,預設表現方式是所有出現的該項事件都會傳送至事件接收器。 SetFilterCommands 方法會提供依據命令識別碼略過選取之事件的方法。
傳送至 SetFilterCommands 的 Commands() 參數是以下列方式定義的陣列。
Commands() 中的元素數目是 3 的倍數:
第一個元素含有範圍 (VisUICmds 的任何成員) 的開始命令識別碼。
第二個元素含有範圍 (VisUICmds 的任何成員) 的結束命令識別碼。
第三個元素含有 True 或 False 值,指出您是否正在聆聽該命令範圍的事件 (值則為 True 會聆聽事件,值為 False 則會排除事件)。
如果事件要能順利通過命令篩選器,則必須滿足下列條件:
必須具備有效的命令識別碼。
如果所有篩選器為 True,事件必須至少符合一個篩選器。
如果所有篩選器為 False,事件不得與任何篩選器相符。
如果篩選器是 True 及 False 的混合,事件必須至少符合一個 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 支援與意見反應。