現象
Microsoft Visio 2013 で次のシナリオを考えます。
-
2 つのテキストボックスを挿入してグループ化します。
-
グループ化した図形のダブルクリック イベントに [カスタム プロパティ] ダイアログ ボックス「DOCMD(1312)」を定義します。
このシナリオの場合、Visio 2010 までのバージョンでは、グループ化された図形のメンバー図形上でダブルクリックすると、グループ図形の [図形データ] ウィンドウが表示されていましたが、Visio 2013 では、メンバー図形の [図形データ] ウィンドウが表示されます。
原因
Visio 2013 で行われたグループ図形に関する処理の実装変更の影響により発生します。
Visio 2010 までのバージョンでは、グループ化された図形をダブルクリックした場合は、グループ化した図形のダブルクリックイベントが発生するように実装されていましたが、Visio 2013 では、メンバ図形をダブルクリックしたときには、そのメンバ図形に登録されているイベントが発生するように動作が変更されました。
この動作変更に伴い、グループ化された図形内のメンバ図形を選択した場合は以下のような動作となります。
-
内部的に各メンバが選択された状態となる
-
各メンバの情報が参照される
-
各メンバに設定されたイベントが優先して動作する
メンバ図形にイベントが登録されていない場合は、グループ化された図形に登録されたイベントが動作しますが、メンバ図形をダブルクリックしたときに、グループ図形ではなくメンバ図形が選択された状態となるため、表示する情報としてはメンバ図形のものが表示されます。
回避策
以下のいずれかの方法で対応してください。
方法 1 :[基本動作] の [選択方法] を「グループ図形のみ」にする
手順
-
グループ図形を選択して、[開発] - [図形のデザイン] セクションの [基本動作] をクリックします。
-
[基本動作] タブの [選択方法] で「グループ図形のみ」を選択して [OK] をクリックします。
方法 2 : ドローイング エクスプローラから [図形データ] ウィンドウを表示する
手順
-
ドローイング エクスプローラでグループ図形を選択して右クリックして [図形データ] をクリックします。
状況
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。
詳細
問題の再現手順
-
Visio 2013 を起動して、空白の図面を作成します。
-
[挿入] - [テキストボックス] をクリックしてテキストボックスを 2 つ挿入します。
-
1 つ目のテキストボックスの [シェイプシートの表示] して、[デザイン] - [挿入] で [Shape data] セクションを追加し、[Label] に「a」と入力します。
-
[Events] セクションの [EventDblClick] に定義されている関数を削除します。
-
2 つ目のテキストボックスの [シェイプシートの表示] して、[デザイン] - [挿入] で [Shape data] セクションを追加し、[Label] に「b」と入力します。
-
[Events] セクションの [EventDblClick] に定義されている関数を削除します。
-
2 つのテキストボックスをグループ化します。
-
グループ化した図形の [シェイプシートの表示] して、[デザイン] - [挿入] で「Shape data」セクションを追加し、[Label] に「group」と入力します。
-
[Events] セクションの [EventDblClick] に「DOCMD(1312)」と入力します。
-
メンバー図形である 1 つ目のテキストボックスをダブルクリックします。
結果
[図形データ] ダイアログ ボックスの Label には、「a」と表示されます。
関連情報
DOCMD(1312) については、以下の資料を確認してください。
DOCMD Function
http://msdn.microsoft.com/en-us/library/office/ff766719.aspx