次の方法で共有


UIObject.AccelTables プロパティ (Visio)

UIObject オブジェクトの AccelTables コレクションを返します。 読み取り専用です。

構文

AccelTables

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

戻り値

AccelTables

注釈

注:

Visio 2010 以降、Microsoft Office Fluent ユーザー インターフェイス (UI) は、以前の階層化されたメニュー、ツール バー、作業ウィンドウのシステムを置き換えました。 以前のバージョンの Visio でユーザー インターフェイスをカスタマイズするために使用した VBA オブジェクトとメンバーは、Visio では引き続き使用できますが、機能は異なります。

UIObject オブジェクトがメニュー項目とアクセラレータを表す場合 (たとえば、Application オブジェクトの BuiltInMenus プロパティを使用して UIObject オブジェクトを取得した場合など)、AccelTables コレクションは、その UIObject オブジェクトのアクセラレータ キーのテーブルを表します。

図面ウィンドウなどの、特定のウィンドウ コンテキストのアクセラレータを取得するには、AccelTables コレクションの ItemAtID プロパティを使用します。 ウィンドウ コンテキストにアクセラレータが含まれない場合は、そのコンテキストには AccelTables コレクションはありません。 有効なウィンドウ コンテキスト ID は、Visio タイプ ライブラリの VisUIObjSets で宣言されます。

次の Microsoft Visual Basic for Applications (VBA) マクロでは、AccelTables プロパティを使用して、組み込みメニューからアクセラレータ キーを削除しています。

このマクロを実行した後、Microsoft Visio の組み込みメニューに戻すには、ThisDocument.ClearCustomMenus メソッドを呼び出します。

 
Public Sub AccelTables_Example() 
 
 Dim vsoUIObject As Visio.UIObject 
 Dim vsoAccelTable As Visio.AccelTable 
 Dim vsoAccelItems As Visio.AccelItems 
 Dim vsoAccelItem As Visio.AccelItem 
 Dim intCounter As Integer 
 
 'Retrieve the UIObject object for the copy of the built-in menus. 
 Set vsoUIObject = Visio.Application.BuiltInMenus 
 
 'Set vsoAccelTable to the drawing menu set. 
 Set vsoAccelTable = vsoUIObject.AccelTables.ItemAtID(visUIObjSetDrawing) 
 
 'Retrieve the accelerator items collection. 
 Set vsoAccelItems = vsoAccelTable.AccelItems 
 
 'Retrieve the accelerator item for the Visual Basic Editor. 
 'To do this, we must iterate through the collection 
 'and locate the item we want to manipulate. 
 'The item can be identified either by checking 
 'the CmdNum property or by checking for the specific key. 
 'Because checking for the key requires looking at the Alt, 
 'Control, Shift, and Key properties, it is better to use the 
 'CmdNum property. Because we retrieved the built-in menus, 
 'we know that we can find the accelerator. 
 For intCounter = 0 To vsoAccelItems.Count - 1 
 Set vsoAccelItem = vsoAccelItems.Item(intCounter) 
 If vsoAccelItem.CmdNum = Visio.visCmdToolsRunVBE Then 
 Exit For 
 
 End If 
 Next intCounter 
 
 'Delete the accelerator. 
 vsoAccelItem.Delete 
 
 'Tell Visio to use the new UI. 
 ThisDocument.SetCustomMenus vsoUIObject 
 
End Sub

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

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