选择文字中的粘贴图片

时间:2018-10-01 06:44:56

标签: vba image ms-word

我正在尝试创建一个宏,该宏将图像复制为增强型图元文件到Word中,然后将其调整为特定的宽度。

我在Excel中有一个类似的宏,如下所示:

Sub Macro1()

    ActiveSheet.PasteSpecial Format:="Picture (Enhanced Metafile)", Link:=False _
        , DisplayAsIcon:=False
    Selection.ShapeRange.Width = 255

End Sub

这简单地记录在Excel中,就像一个超级按钮。 但是,似乎不可能用文字做同样的事情。

如果我不使用录制宏,我将粘贴图片并向左移动Shift +向左箭头以选择图片。但是,一旦我开始录制,这将不起作用。 我环顾四周,显然与Inlineshapes有关吗?但是我找不到一段代码,它实际上允许我选择刚粘贴的图片,以便以后进行调整大小。

为什么这样做,我该如何解决?

1 个答案:

答案 0 :(得分:0)

使用VBA粘贴Word时,未选择粘贴的内容,显然在Excel中是不同的。也许是因为Shape链接到工作簿单元格,并且已选择该单元格?

无论如何,下面的代码成功地拾取了粘贴的图像以进行进一步处理。它的作用是计算从文​​档开始到当前选择的InlineShapes数量,再加上一个字符。

粘贴操作之后,新的InlineShape将被添加到该范围内的项目数中,因此可以通过其索引号(lNrIls + 1)进行拾取。

为了完整起见,我还将粘贴的变体形式包括为Shape(这意味着图像具有文字换行格式,等等)。基本方法与InlineShape相同。

注意:默认情况下,粘贴图像时,Word将使用文件/选项/高级的“剪切,复制和粘贴”部分中的设置Insert/paste pictures as。因此,在某些计算机上,图像可能会粘贴为InlineShape,而在其他计算机上可能会粘贴为Shape。如果要专门以行内粘贴或文本换行粘贴,请使用PasteSpecial和相应的WdOLEPlacementwdFloatOverText的{​​{1}}枚举值。

wdInLine