Visioの外部にVisioファイル(VDX)を作成するモジュールがあります。SDKによると、これは「信頼できない」XMLを指します。ステンシルからマスターをコピーしてxmlファイルを作成し、XMLスパースファイルを使用してそれらを参照しました。
私のスパースxmlでは、次のようにシェイプの位置とサイズをオーバーライドします。
<Shape ID="154" Master="0">
<Text>Text of the shape</Text>
<XForm>
<PinX>2.90625</PinX>
<PinY>3.895833333333333</PinY>
<Width F="No Formula">0.75</Width>
<Height F="No Formula">0.5</Height>
</XForm>
</Shape>
私の形はサブ形を持つグループです。
動作し、Visioはそれを開くことができますが、サブシェイプにはマスターのデフォルトの幅と高さがあります。また、図形間のリンクが正しくルーティングされません。
同じ新しいファイルをコピーして貼り付けると、期待どおりの結果が得られます。
サブシェイプの幅と高さを強制しようとしました。同じ問題が発生します。
Cellクラスのtrigger()メソッドを明示的に呼び出して、ドキュメントを開くときにVBAコードを使用してみましたが、期待どおりの結果が得られました。それも機能します、私はシェイプシートを開きます。値は黒で表示され、セルでEnterキーを押すだけで、期待どおりの結果が得られます。
この問題についての私の理解は、ドキュメントを開いたときにvisioがサブシェイプの数式を評価しないということです。
残念ながら、セルを強制および更新するためにマクロに依存することはできません。ドキュメントを開いたときに、サブシェイプの数式を強制的に再評価する方法があるかどうかを知りたいです。
前もって感謝します。
エリック