我正在尝试创建一个宏,该宏将图像复制为增强型图元文件到Word中,然后将其调整为特定的宽度。
我在Excel中有一个类似的宏,如下所示:
Sub Macro1()
ActiveSheet.PasteSpecial Format:="Picture (Enhanced Metafile)", Link:=False _
, DisplayAsIcon:=False
Selection.ShapeRange.Width = 255
End Sub
这简单地记录在Excel中,就像一个超级按钮。 但是,似乎不可能用文字做同样的事情。
如果我不使用录制宏,我将粘贴图片并向左移动Shift +向左箭头以选择图片。但是,一旦我开始录制,这将不起作用。 我环顾四周,显然与Inlineshapes有关吗?但是我找不到一段代码,它实际上允许我选择刚粘贴的图片,以便以后进行调整大小。
为什么这样做,我该如何解决?
答案 0 :(得分:0)
使用VBA粘贴Word时,未选择粘贴的内容,显然在Excel中是不同的。也许是因为Shape链接到工作簿单元格,并且已选择该单元格?
无论如何,下面的代码成功地拾取了粘贴的图像以进行进一步处理。它的作用是计算从文档开始到当前选择的InlineShapes数量,再加上一个字符。
粘贴操作之后,新的InlineShape将被添加到该范围内的项目数中,因此可以通过其索引号(lNrIls + 1)
进行拾取。
为了完整起见,我还将粘贴的变体形式包括为Shape
(这意味着图像具有文字换行格式,等等)。基本方法与InlineShape相同。
注意:默认情况下,粘贴图像时,Word将使用文件/选项/高级的“剪切,复制和粘贴”部分中的设置Insert/paste pictures as
。因此,在某些计算机上,图像可能会粘贴为InlineShape,而在其他计算机上可能会粘贴为Shape。如果要专门以行内粘贴或文本换行粘贴,请使用PasteSpecial
和相应的WdOLEPlacement
或wdFloatOverText
的{{1}}枚举值。
wdInLine