Replaceshape:我想在所有分组对象的 replaceshape 中启用 ReplaceLockText

Replaceshape: I want to enable ReplaceLockText in the replaceshape of all grouped objects

我正在将 replaceshape 方法应用于 3 个或更多分组的 VISIO 对象。 我以为通过将ReplaceLockText选项设置为0,可以继承旧对象的所有文本信息,但是没有用。

调查原因后发现,如果有多个对象可以输入文字,前景对象的文字会被保留,其余的文字不会被保留。即使将 replacelocktext 设置为 0 或将 Replaceshape 方法的选项设置为 1,也会出现此错误。

    Set vsoShape = vsoShape.ReplaceShape(vssxMasters.Item(MasterName), 0)

replaceshape 方法工作正常,除了一些文本被丢弃。

如何在保留所有文本的同时替换形状?

主控形状有 3 个或 4 个子对象。

所有保护为0。如LockTextEdit

<已冷却对象 1> 是个对象,跟这个问题无关。

锁定文本编辑 = 1。 我允许从 PHASE、SUBROUTINE 等列表中选择值。 列表存储在Shape Data的Format中,选择哪一个存储在Shape Data的Value中。

<已冷却对象 2> 在 replaceshape 方法中保存文本的对象。 LockTextEdit 为 0。 此外,ReplaceLockShapeData、ReplaceLockText 和 ReplaceLockFormat 为 0。

是位于图中前景的物体。 也是按F2键可以编辑的对象

<冷冻对象 3> 是replaceshape方法没有保留文字的对象,也就是本次要讨论的对象。 同样,LockTextEdit 为 0。 此外,ReplaceLockShapeData、ReplaceLockText 和 ReplaceLockFormat 为 0。

是位于图中中间的物体。 可以进行 TextEdit,但如果您在单击父对象后键入,则 Object1 优先。

执行ReplaceShape方法时,文本数据消失,重新写入主数据

字符串“test1”未被继承。

enter image description here

请尝试使用标志 visReplaceShapeLockText 详细了解 ReplaceShape method

我对 ReplaceLockText option 做了一些实验。它似乎只适用于简单的形状(不包含 sub-shapes)!
[]