在开发过程中,一切都很好,早期绑定(bind)很有效,但现在我已经转向后期绑定(bind)以进行生产,并且我遇到了 Visio 枚举问题。如下:
Set AppVisio = CreateObject("visio.application")
Set vsoSelection = AppVisio.ActiveWindow.Selection
Call vsoSelection.GetIDs(lngShapeIDs)
With .Shapes.ItemFromID(lngShapeIDs(0))
.CellsSRC(visSectionObject, visRowXFormOut, visXFormPinX).FormulaU = sngShapeHCenter
.CellsSRC(visSectionObject, visRowXFormOut, visXFormPinY).FormulaU = sngShapeVCenter
.CellsSRC(visSectionObject, visRowXFormOut, visXFormWidth).FormulaU = sngShapeWidth
.CellsSRC(visSectionObject, visRowXFormOut, visXFormHeight).FormulaU = sngShapeHeight
End With
早期绑定(bind)
visSectionObject, visRowXFormOut, visXFormPinX etc.
全部解析,但我无法让它们在后期绑定(bind)中解析。
我尝试添加 AppVisio。为参数添加前缀无效,任何人都可以帮助并告诉我引用枚举的正确方法吗?
我尝试使用 Visio VBA 记录器来查看它提供的内容,但它并不像我希望的那样详细(是的,我知道,它是如此详细,但不是在这个场合)。
这需要适用于 Visio 2010 和 2013 等。
最佳答案
这是后期绑定(bind)的权衡之一,或者更准确地说,是不在“工具”>“引用”中设置显式引用。预定义的枚举将不再可用。
您必须将枚举替换为其数值 ( see e.g. this list )。
例如,visRowXFormOut
的数值为 1
,您可以在“立即”窗口中自行检查:
?visRowXFormOut
1
因此,您可以将 visRowXFormOut
的所有实例替换为 1
,或者将 visRowXFormOut
声明为常量:
Const visRowXFormOut As Integer = 1
并保持其余代码不变。
关于vba - 枚举的后期绑定(bind)问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20344409/