接着されている認識について |
- 01: 名前:M2号投稿日:2005/12/26(月) 20:35
- 線(1次元図形)にて、自分のシェイプが他のシェイプに接着されているかどうか
判断する方法は無いのでしょうか?
やりたい事は、接着されている時にある部分を表示し、接着されていない時に
ある部分を非表示にするといった事です。
シェイプシートを見ると、BeginX、BeginY、EndX、EndYセルが接着している時と、
接着していない時で式と値が切り替わりますが、色々と試してみましたが判断
する方法がわかりません。
VBAなどのイベントを使えば出来そうですが、シェイプシート内だけで実現したい
と考えております。
- 02: 名前:yoda投稿日:2005/12/26(月) 21:55
- ConnectionsAdded イベント、ConnectionsDeleted イベントで、
接続を検出し、シェイプのUser Defined Cellに、書き込むという
方法はどうでしょう。
- 03: 名前:yoda投稿日:2005/12/26(月) 22:12
- ごめんなさい。シェイプシート内だけでしたね。
コネクターのGlueInFoセクションの式を加工して、
接続先のシェイプ名をMID関数か何かで抜き出し、
User Defined セルに書き込無と言うのは、
どうでしょう。シェイプシート内だけでは、そのくらいしか
できないでしょう。考え済みとは思いますが。
- 04: 名前:M2号投稿日:2005/12/27(火) 09:36
- yoda様。いつもありがとうございます。
GlueInFoセクションの動きは確認させて頂きました。
しかし、BeginX、・・・も同様ですが、接続先のシェイプ名を取り出すには、セルから値ではなく
式を参照しなければなりません。
こちらも拝見しましたが、シェイプシート内では、値しか参照できないのでしょうか?
↓
数式の参照方法について
http://www.mster.co.jp/visiosquare/cgi-bin/visbbs/mibbs.cgi?mo=p&fo=shape&tn=0092 [source] [check]
- 05: 名前:yoda投稿日:2005/12/27(火) 10:28
- 多分、シェイプシート内では、値しか参照できないのでしょう。
- 06: 名前:M2号投稿日:2005/12/27(火) 10:49
- 内輪ですが、M1号が別の方法を発見しました。
ちょっと無理矢理な方法ですが、
BeginX、BeginY、EndX、EndYなどのセルに、Visio2003から搭載された「SETATREF」関数を
使用してUser Defined セルに値を転送して、その値がポイント(座標)であるか?をABS関数で
(エラーが発生するかどうかで)判断することが出来ました。
- 07: 名前:yoda投稿日:2005/12/27(火) 11:38
- 私には難しくて、よく分かりませんが、接続先が分からなくてもよいなら、
GlueInFoセクションのセルの値が1か2かで、接続しているかどうかは、
判定できるような気がしますが、、、、
- 08: 名前:M2号投稿日:2005/12/27(火) 14:00
- > GlueInFoセクションのセルの値が1か2かで、接続しているかどうかは、
> 判定できるような気がしますが、、、、
ありがとうございます。大変参考になりました。
(シェイプシートの表示を「値」にしていなかったので、気付きませんでした)
それにしても、アンダースコア付きの内部関数について、結果の値だけでも
正式に公開して欲しいものです。
例)
「_XFTRIGGER」は、接着されていない場合=1、接着されている場合=2 ?
- 09: 名前:yoda投稿日:2005/12/27(火) 20:01
- 試しに、GlueInfoセクションのセルの値で、接続を認識し、接続したら
矢印をつけ、テキスト表示を変えるコネクタを作ってみました。
そのコネクタの入ったステンシルを、upload bbsにアップロードしました。
http://www.mster.co.jp/visiosquare/cgi-bin/cbbs/file/1135681073.lzh [source] [check]
- 10: 名前:M2号投稿日:2005/12/27(火) 20:19
- > そのコネクタの入ったステンシルを、upload bbsにアップロードしました。
拝見いたしました。
私のイメージ通りです。ありがとうございます。
- 11: 名前:削除されました投稿日:削除されました
- 削除されました
|
|