前のトピック     次のトピック

第 22 章 VISIO ユーザー インターフェースのカスタマイズ

セクション 1   カスタマイズの対象

プログラムから Visio® ユーザー インターフェースをカスタマイズするには、UIObject オブジェクトを使用します。Visio インスタンス内で図面を開いて操作する場合に Document オブジェクトを取得するのと同様に、メニュー、ツールバー、ステータス バー、および Visio ユーザー インターフェース内のショートカット キーを操作する場合は、UIObject オブジェクトを取得します。

以下の図に、Visio オブジェクトモデル内の UIObject オブジェクトの例を示します。

 



Visio オブジェクト モデルの UIObject オブジェクト

Visio オブジェクト モデル内の多くのオブジェクトは、Visio インスタンスに表示される各項目に対応しています。たとえば、Menu オブジェクトで Visio の [編集] メニューを指定し、MenuItem オブジェクトでそのメニュー上の [コピー] コマンド、マクロまたはアドオンを実行するカスタム項目、または階層メニュー (サブメニューとも呼ぶ) のアンカーを指定することができます。

 



多くの Visio UIObject オブジェクトは、Visio インスタンスに表示される項目に対応します。

  1. メニュー
  2. ツールバー
  3. ツールバー ボタン
  4. ステータス バー
  5. ステータス バーの項目

このセクションの内容...

UIObject オブジェクトの取得

メニュー オブジェクトについて

ショートカット キー オブジェクトについて

ツールバー オブジェクトについて

ステータス バー オブジェクトについて

UIObject オブジェクトの取得

UIObject オブジェクトは、Visio オブジェクト モデルの他のオブジェクトとは異なり、それ自身が UIObject オブジェクトを返す "UIObject" プロパティはありません。その代わり、 BuiltInMenusCustomMenusBuiltInToolbars、および CustomToolbars の各プロパティが、それぞれ対応する UIObject オブジェクトを返します。BuiltInMenus または CustomMenus プロパティは、メニューおよびショートカットキーを表す UIObject オブジェクトを返し、BuiltInToolbars または CustomToolbars プロパティはツールバーおよびステータス バーを表す UIObject オブジェクトを返します。

Visio に組み込まれているユーザー インターフェースのコピーを変更するには、Application オブジェクトの BuiltInMenus または BuiltInToolbars プロパティを使用して、UIObject オブジェクトを取得します。たとえば、組み込みメニューのコピーを変更し、Visio のメニューとショートカットを表す UIObject オブジェクトを取得するには、まず以下のコードを記述します。

Dim uiObj As Visio.UIObject
Set uiObj = Visio.Application.BuiltInMenus

組み込みツールバーのコピーを表す UIObject オブジェクトを取得するには、以下のように記述します。

Dim uiObj As Visio.UIObject
Set uiObj = Visio.Application.BuiltInToolbars(0)

カスタム ユーザー インターフェースを変更するには、Application または Document オブジェクトの CustomMenus または CustomToolbars プロパティを使用して、UIObject オブジェクトを取得します。これらのプロパティを使用して、カスタム ユーザー インターフェースが有効かどうかを調べたり、そのインターフェースが別のソリューションまたはユーザーによってカスタマイズされているかどうかを調べることができます。以下にその例を示します。

'Check if there are document custom menus
If ThisDocument.CustomMenus Is Nothing Then
     'Check if there are Visio custom menus
     If Visio.Application.CustomMenus Is Nothing Then
          'Use the Built-in menus
          Set visUIObj = Visio.Application.BuiltInMenus
     Else
          'Use the Visio custom menus
          Set visUIObj = Visio.Application.CustomMenus
...

Document オブジェクトのカスタム メニューを表す UIObject オブジェクトを取得するには、以下のように記述します。

Dim uiObj As Visio.UIObject
Set uiObj = ThisDocument.CustomMenus
'Returns Nothing if document has no custom menus

組み込みメニューまたはカスタム メニューのいずれかを表す UIObject オブジェクトには、コレクションを返す 2 つのプロパティMenuSets および AccelTables があります。組み込みツールバーまたはカスタム ツールバーのいずれかを表す UIObject オブジェクトにも、コレクションを返す 2 つのプロパティToolbarSets および StatusBars があります。


他のほとんどの Visio オブジェクト コレクションとは異なり、UIObject オブジェクトを表すコレクションのインデックスは 0 で開始されます。以下のコレクションの最初の項目を取得するには、コレクションの Item プロパティで 0 のインデックスを指定してください。AccelTables、AccelItems、MenuSets、Menus、MenuItems、StatusBars、StatusBarItems、 oolbarSets、Toolbars、ToolbarItems


Visio オブジェクト モデルの UIObject の階層はかなり複雑にできているため、カスタマイズ前にさまざまなオブジェクトとその関係をはっきり理解しておく必要があります。このセクションの次の項目では、Visio メニュー、ショートカット キー、ツールバー、およびステータス バーを表すオブジェクトの階層を説明します。

TOP へ

メニュー オブジェクトについて

Visio では、図面ウィンドウ、シェイプシート (ShapeSheet®) ウィンドウ、またはステンシル ウィンドウなど、ウィンドウ コンテキストによって表示されるメニュー セットも異なります。たとえば、図面ウィンドウがアクティブになっているときと、ステンシルウィンドウがアクティブになっているときでは、表示されるメニュー項目は異なります。以下の表に、Visio® オブジェクト モデル内のメニュー オブジェクトの一覧を示します。

Visio オブジェクト モデルのメニュー オブジェクト

オブジェクト 説明
MenuSets Visio のすべてのメニュー セットを含むコレクション。MenuSets コレクションを取得するには、メニューとショートカット キーを表す UIObject オブジェクトの MenuSets プロパティを取得します。
MenuSet 特定のウィンドウ コンテキストで使用できるメニュー セット。たとえば、1 つの MenuSet オブジェクトで、図面ウィンドウがアクティブなときに使用できるメニュー セットを表します。MenuSet オブジェクトを取得するには、MenuSets コレクションの ItemAtID プロパティを使用して、目的のコンテキストの ID を指定します。ItemAtID で使用できるその他の識別子とコンテキストの一覧表については、Visio 製品付属のオンライン ヘルプ「開発者用リファレンス」 ([ヘルプ] メニューから [開発者用リファレンス] を選択) で「ItemAtID」を検索してください。

すべての MenuSet オブジェクトは、特定のウィンドウ コンテキストに対応しています。ただし、ショートカット メニュー (シェイプ、ページ、ステンシルウィンドウなどを右クリックすると表示されるメニューで、右クリックメニュー、または状況依存メニューなどとも呼ばれる) を表す MenuSet オブジェクトは例外です。

  Visio 2000 では、MenuSet オブジェクトの Position プロパティは、メニュー バーを固定表示 (左、右、上、または下に) するか、浮動表示するかを指定します。RowIndex プロパティは、Visio ウィンドウ内に表示されるメニュー バーとその他のバーとの相対関係を指定します。これらのプロパティの詳細については、Visio 製品付属のオンライン ヘルプ「開発者用リファレンス」 ([ヘルプ] メニューから [開発者用リファレンス] を選択) で、各プロパティの名前を検索してください。

Menus メニュー セット内のメニューのコレクション。たとえば、Menus コレクション内の項目で、[ファイル]、[編集]、[オプション] メニューなどを表します。Menus コレクションを取得するには、MenuSet オブジェクトの Menus プロパティを取得します。
Menu メニュー。たとえば、[ファイル] メニューを表す Menu オブジェクト内の項目で、[開く]、[閉じる]、[編集] などのメニュー項目を表します。Menu オブジェクトを取得するには、Menus コレクションの Item プロパティで目的のメニューのインデックスを指定します。メニューのインデックスは、Visio インスタンス内の左から右へ、または上から下へと、表示順に指定されます。たとえば、ほとんどのウィンドウ コンテキストでは、[ファイル] メニューのインデックスは 0 です。Menu オブジェクトを追加するには、Menus コレクションの Add または AddAt メソッドを使用します。
MenuItems Visio メニューのメニュー項目のコレクション。MenuItems コレクションを取得するには、Menu オブジェクトの MenuItems プロパティを取得します。
MenuItem Visio メニューのメニュー項目、またはコマンド。MenuItem オブジェクトを取得するには、MenuItems コレクションの Item プロパティで目的のメニュー項目のインデックスを指定します。メニューのインデックスは、Visio インスタンス内の左から右へ、または上から下へと、表示順に指定されます。たとえば、Visio の [編集] メニューの [元に戻す] コマンドのインデックスは 0 です。

MenuItem オブジェクトを追加するには、MenuItems コレクションの Add または AddAt メソッドを使用します。MenuItem オブジェクトの CmdNum プロパティには、Visio タイプ ライブラリの宣言に合致した有効なコマンド ID を指定するか、項目がメニュー内のセパレータの場合には 0 を指定します。メニュー項目がプログラムを実行する場合、その AddOnName プロパティには、メニュー項目の選択時に実行されるマクロまたはプログラムの名前を指定します。AddOnArgs プロパティは、渡す引数を指定します。

Visio メニュー項目に階層メニューがある場合、階層メニューを表す MenuItem オブジェクトには、MenuItem オブジェクトを持った MenuItems コレクションがあります。そのような MenuItem オブジェクトの CmdNum プロパティは、visCmdHierarchical に設定します。使用できるその他のプロパティは、CaptionIndexMenuItemsParent、および Delete です。それ以外のプロパティおよびメソッドはすべて無視されます。

Visio 2000 では、Menu および MenuItem オブジェクトのどちらにも、以下のプロパティがあります。

これらのプロパティの詳細については、Visio 製品付属のオンライン ヘルプ「開発者用リファレンス」で各プロパティの名前を検索してください。

TOP へ

ショートカット キー オブジェクトについて

ショートカット キーは、押すことでコマンドを実行する複数のキーの組み合わせです。たとえば、メニュー項目 [コピー] に対応するショートカット キーは Ctrl+C で、[貼り付け] メニューのショートカット キーは Ctrl+V です。以下の表に、Visio オブジェクト モデルのショートカット キー オブジェクトの一覧を示します。

Visio オブジェクト モデルのショートカット キー オブジェクト

オブジェクト 説明
AccelTables Visio ショートカット キー テーブルをすべて含むコレクション。ウィンドウ コンテキストが異なると、使用するショート カットキーのセットも異なります。AccelTables コレクションを取得するには、UIObject オブジェクトの AccelTables プロパティを取得します。
AccelTable 特定のウィンドウ コンテキストで使用できるショートカット キー テーブル。AccelTable オブジェクトは、図面ウィンドウのようなウィンドウ コンテキストのみ対応するもので、ショートカット メニューでは使用できません。AccelTable オブジェクトを取得するには、AccelTables コレクションの ItemAtID プロパティを使用し、使用するコンテキストの ID を指定します。
AccelItems ショートカット キー テーブル内のショートカット キーのコレクション。AccelItems コレクションを取得するには、AccelTable オブジェクトの AccelItems プロパティを取得します
AccelItem 単一のショートカット キー項目。Ctrl+C (コピー) や Ctrl+V (貼り付け) などのショートカット キーは、図面ウィンドウがアクティブなときに使用できます。AccelItem オブジェクトを取得するには、AccelItems コレクションの Item プロパティで目的のメニューのインデックスを指定します。

  Visio 2000 では、AccelItem オブジェクトには AddOnName および AddOnArgs プロパティがあります。この 2 つのプロパティにより、Microsoft Visual Basic for Applications (VBA) のマクロまたはアドオンをショートカット キーに組み込むことができるようになりました。旧バージョンの Visio では、ショートカット キーには組み込みコマンドしかバインドできませんでした。

TOP へ

ツールバー オブジェクトについて

ウィンドウ コンテキストが異なると、表示されるツールバー セットも異なります。たとえば、シェイプシート (ShapeSheet®) ウィンドウがアクティブなときと図面ウィンドウがアクティブなときでは、表示されるツールバー ボタンが異なります。以下の表に、Visio オブジェクト モデルのツールバー オブジェクトの一覧を示します。


ヒント Visio 2000 では、[ユーザー設定] ダイアログ ボックスの [添付] ボタンで、Visio 図面にユーザー設定のツールバーを添付することができます。ツールバーの作成と添付の詳細については、Visio 製品付属のオンライン ヘルプで [ユーザー設定] ダイアログボックスを検索してください。


Visio オブジェクト モデルのツールバー オブジェクト

オブジェクト 説明
ToolbarSets Visio のすべてのツールバー セットを含むコレクション。ToolbarSets を取得するには、ツールバーおよびステータス バーを表す UIObject オブジェクトの ToolbarSets プロパティを取得します。

Visio ツールバーの表示、非表示を指定するには、Application オブジェクトの ShowToolbar プロパティを使用します。

ToolbarSet

特定のウィンドウ コンテキストで使用できるツールバー セット。たとえば、1 つの ToolbarSet オブジェクトで、シェイプシート ウィンドウがアクティブなときに使用可能なツールバー セットを表します。ToolbarSet オブジェクトを取得するには、ToolbarSets コレクションの ItemAtID プロパティを使用して、目的のコンテキストの ID を指定します。

Toolbars ツールバー セット内の Visio ツールバーのコレクション。Toolbars コレクションを取得するには、ToolbarSet オブジェクトの Toolbars プロパティを取得します。
Toolbar Visio のツールバー。Toolbar オブジェクトを取得するには、Toolbars コレクションの Item プロパティを使用し、目的のツールバーのインデックスを指定します。組み込みツールバーのインデックスは、すべての組み込みツールバーが表示されている場合は、Visio ウィンドウ内にツールバーが最初に固定された順に指定されます。ユーザー設定のツールバーには、コレクションへの追加順でインデックスが指定されます。

ツールバーを追加するには、Toolbars コレクションの Add または AddAt メソッドを使用します。

Toolbar オブジェクトの Caption プロパティは、図面ウィンドウの [表示] メニューの [ツールバー] メニュー項目の階層メニューに表示されるキャプションを表します。

  Visio 2000 では、Toolbar オブジェクトの Position プロパティには、ツールバーを固定表示 (左、右、上、または下に) するか、浮動表示するかを指定します。RowIndex プロパティには、Visio ウィンドウ内に表示されるツールーバーとその他のバーとの相対関係を指定します。これらのプロパティの詳細については、Visio 製品付属のオンライン ヘルプ「開発者用リファレンス」 ([ヘルプ] メニューから [開発者用リファレンス] を選択) で各プロパティの名前を検索してください。

ToolbarItems Visio ツールバー内のツールバー項目のコレクション。ToolbarItems コレクションを取得するには、Toolbar オブジェクトの ToolbarItems プロパティを取得します。
ToolbarItem Visio ツールバー上のコントロール。ToolbarItem オブジェクトを取得するには、ToolbarItems コレクションの Item プロパティに目的のツールバーのインデックスを指定します。ツールバー項目には、ツールバー上の表示順にインデックスが指定されます。ほとんどのコンテキストでは、ツールバー項目「空白の図面」のインデックスが 0 になっています。ツールバー項目を追加するには、ToolbarItems コレクションの Add または AddAt メソッドを使用します。

  Visio 2000 では、ToolbarItem オブジェクトに Style プロパティがあり、アイコンとテキストの両方を表示するか、テキストだけを表示するかを指定します。ToolbarItem オブジェクトには State プロパティもあります。このプロパティは、項目を「押されたボタン」の状態 (アイコンがある場合) で表示するか、チェックマーク付きで (テキストだけの場合) 表示するかを指定します。これらのプロパティの詳細については、Visio 製品付属のオンライン ヘルプ「開発者用リファレンス」で各プロパティの名前を検索してください。

TOP へ

ステータス バー オブジェクトについて

ステータス バーには、ページ上のマウス ポインタの位置、線の角度や長さなど、図形、メニュー、またはツールのステータスを示す項目が表示されます。以下の表に、Visio オブジェクト モデルのステータス バー オブジェクトの一覧を示します。

Visio オブジェクトモデルのステータス バー オブジェクト

オブジェクト 説明
StatusBars Visio のすべてのステータス バーを含むコレクション。StatusBars コレクションを取得するには、UIObject オブジェクトの StatusBars プロパティを使用します。
StatusBar 特定のウィンドウ コンテキストのステータス バー。たとえば、1 つの StatusBar オブジェクトで、シェイプ選択時に表示されるステータス バーを表します。StatusBar オブジェクトを取得するには、StatusBars コレクションの ItemAtID プロパティに、目的のコンテキストの ID を指定します。
StatusBarItems Visio ステータス バーのステータス バー項目のコレクション。StatusBarItems コレクションを取得するには、StatusBar オブジェクトの StatusBarItems プロパティを取得します。
StatusBarItem ステータス バーに表示される Visio ステータス バー項目。StatusBarItem オブジェクトを取得するには、StatusBarItems コレクションの Item プロパティに、目的のステータス バー項目のインデックスを指定します。ステータス バー項目のインデックスは、ステータス バーで左から右へ表示順に従って指定されます。たとえば、2 次元 (2-D) 図形を選択したときには、その図形の幅を示すステータス バー項目が左に表示され、インデックスは 0 です。

  Visio 2000 では、StatusBarItem オブジェクトには Style プロパティがあります。この 2 つのプロパティにより、アイコンとテキストの両方を表示するか、テキストだけを表示するかを指定します。StatusBarItem オブジェクトには State プロパティもあります。このプロパティでは、項目を「押されたボタン」の状態 (アイコンがある場合) で表示するか、チェックマークを付けて (テキストだけの場合) 表示するかを指定します。これらのプロパティの詳細については、Visio 製品付属のオンライン ヘルプ「開発者用リファレンス」で各プロパティの名前を検索してください。

Top