我在Microsoft Word中有一个来自第三方的自定义内容控件,试图调整其宽度和高度。通过VBA进行的常规内容控件选择不起作用,因为该控件没有标题或标签。但是,如果我手动选择对象并使用"Selection.ShapeRange.Height = x“或ShapeRange.Width以编程方式调整它的大小,它就会工作。因此,要以编程的方式完成这一切,我需要确定“选择”的名称,而不必手动选择它。
是否有一种方法可以“检查”word中对当前选定对象的完整引用,这样我们就可以获得一个在VBA中使用它的起点了吗?
发布于 2014-03-12 17:04:50
很难知道你处理的是什么类型的对象。我通过插入一个空白的ActiveX图像控件,选择它,然后运行宏来测试它。该代码有两个方法,但其中一个被注释掉。
Sub FindName()
MsgBox (Selection.Fields.Item(1).OLEFormat.ClassType)
'MsgBox (Selection.InlineShapes.Item(1).OLEFormat.ClassType)
MsgBox (Selection.InlineShapes.Item(1).Field.Index)
MsgBox (Selection.InlineShapes.Item(1).AlternativeText)
'Show current name
MsgBox (Selection.Fields.Item(1).OLEFormat.Object.Name)
'Set new name
Selection.Fields.Item(1).OLEFormat.Object.Name = "Image5"
'Re-display name to show that it changed
MsgBox (Selection.Fields.Item(1).OLEFormat.Object.Name)
End Sub其结果是:


https://stackoverflow.com/questions/22356002
复制相似问题