
Visio 2007 に付属するプリインストールされた図形の中には、オプションがあるものがあります。たとえば、[電気工学] > [スイッチとリレー] 図形ページから SPDT を図面に挿入する場合、それを右クリックして [スイッチの位置を設定] を選択できます。
独自の図形にこのような機能を追加するにはどうすればよいでしょうか?
答え1
Visio にどの程度精通しているかはわかりませんが、どの図形にもシェイプシートと呼ばれるものがあります。シェイプシートは基本的にスプレッドシートであり、各セルが Visio に図形のレンダリング (またはデータの保持) を指示します。
そこに到達するには、Visio で開発者モードを有効にして、図形を右クリックし、シェイプシート ウィンドウを選択する必要があります。ウィンドウのドロップダウン/リボンにもあると思います。
とにかく、シェイプシートに入ると、図形の幅、高さなどの項目が表示されます。たとえば、幅のセルを選択すると、値だけが表示されますが、その前に = 記号が付いています。つまり、幅の単純な値ではなく、実際には数式です。高さの数式を =Width/2 に変更すると、幅を調整しても高さが幅の半分のままになることがわかります。
それで、質問の答えに近づくために、私の推測では、あなたが言及している図形は、その機能を実行するためにシェイプシートのトリックを使用しています。シェイプシートにはさまざまな種類のデータがあり、通常はセクションごとに分割されています。図形の右クリック メニューを定義するセクションは、ユーザー アクション セクションと呼ばれます。スイッチ図形のシェイプシートを表示すると、SetF または同様のものを使用して他のセルの値を変更する数式を含むアクション セルが見つかるでしょう。したがって、図形は、単一のセルの値を切り替えることで外観が変わるように設定されている可能性があります。
したがって、独自のシェイプをそのように設定するには、基本的に、選択されたオプションを保持するユーザー セルを作成するという同様の操作を行う必要があります。次に、他のすべての数式をその 1 つのセルを読み取るように設定します。次に、アクション セルがクリックされたときにオプションを設定します。
他にできることは、Visio で VBA を使用してアクション クリックに応答することです (別の数式 - callthis を使用)。ただし、その場合、VBA は基本的に別の言語を使用して、シェイプシートの値と数式を変更することになります。
これらすべてを行う方法については、オンライン上に豊富な情報がありますが、検索する際に知っておく必要があるのは「ShapeSheet」という単語だけです。