我在Microsoft Word中有来自第三方的自定义内容控件,我正在尝试调整其宽度和高度。通过VBA进行的正常内容控制选择无效,因为此控件没有标题或标记。但是,如果我手动选择对象并使用“Selection.ShapeRange.Height = x”或ShapeRange.Width以编程方式调整它,它确实有效。因此,要以编程方式完成所有操作,我需要确定“选择”的名称,而无需手动选择它。
有没有办法在单词中“检查”对当前所选对象的完整引用,那么我们可以在VBA中找到一个起点来处理它?</ p>
答案 0 :(得分:1)
很难知道你处理的对象是什么类型的。我通过插入一个空白的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
结果如下: