У меня есть модуль, который создает файл Visio (VDX) вне Visio. В соответствии с 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 может его открыть, но подформы имеют ширину и высоту по умолчанию мастера. Также ссылки между формами by не маршрутизируются должным образом.
Если я скопирую/вставлю тот же новый файл, то получу ожидаемый результат.
Я пытался форсировать ширину и высоту подформ. У меня такая же проблема.
Я попытался использовать код VBA при открытии документа, явно вызвав метод trigger() класса Cell, и получил ожидаемые результаты. Это также работает, я открываю форму листа. Значение выделено черным цветом, я просто нажимаю Enter в ячейке и также получаю ожидаемый результат.
Насколько я понимаю, проблема заключается в том, что visio не оценивает формулы моих подформ, когда я открываю документ.
К сожалению, я не могу полагаться на макросы для форсирования и обновления ячеек. Я хотел бы знать, есть ли способ принудительно переоценить формулы моих подформ, когда я открываю свой документ.
Заранее спасибо.
Эрик