vba - VBA - 如何找到从效果创建的形状的名称?
问题描述
我想知道是否有比使用 ActiveLayer.Shapes(2) 更具体的方法来重命名从轮廓效果中提取的形状?我不喜欢这种方法的主要原因是它很笼统,而且我担心在某个地方它可能不再是 Shape(2),从而导致问题。我希望通过名称来定义它,但我不知道那是什么,因为它是通过效果创建的。
是否有偶然的功能或东西来查找未知的形状名称?
我找到了.findeshape,但我无法让它工作,我不确定这是否是我在这种情况下真正需要的。任何帮助表示赞赏。
'Create Rectangle
Set Rect = ActiveLayer.CreateRectangle(1, 1, 0, 0)
'Apply .1" Outside Contour.
Set Contour1 = ActiveLayer.Shapes(1).CreateContour(cdrContourOutside, 0.1, 1, cdrDirectFountainFillBlend, CreateCMYKColor(75, 68, 65, 90), CreateCMYKColor(0, 0, 0, 100), CreateCMYKColor(0, 0, 0, 100), 0, 0, cdrContourSquareCap, cdrContourCornerMiteredOffsetBevel, 15#)
ActiveDocument.CreateSelection Contour1.Contour.ContourGroup, ActiveLayer.Shapes(1)
ActiveSelection.Separate
ActiveLayer.Shapes(2).ObjectData("Name").Value = "Renamed 2"
End Sub```
解决方案
推荐阅读
- javascript - 通过词法范围获取变量是否算作依赖注入?
- azure - 在 Kubernetes 集群上部署 Cassandra
- android - 如何从商家应用程序向客户端应用程序发送推送通知?
- c++ - OpenCV warpPerspective 错误:通道数错误
- react-native - OpenTok 音频和视频控件未出现在 react-native 应用程序中
- asynchronous - Flutter异步代码执行顺序错误
- shiny - 如何使用 for 循环和 ifs 从数据框中返回值以匹配闪亮服务器中的输入值
- oracle - Query joined partitioned tables
- angular - Show form error without field blur in angular
- c# - How to check if element already exist in an array