如何选择刚刚通过VBA粘贴到MS Word的图像

时间:2011-10-03 14:48:38

标签: vba ms-word

使用以下

将图像粘贴到VBA中的MS Word
wordApp.Selection.PasteSpecial DataType:=wdPasteMetafilePicture, Placement:=wdInLine

我的想法是向左移动一个字符然后选择下一个对象,但我不知道该怎么做。

编辑:

这里有一些加密的开发,使用以下行,我能够选择包含图像的段落,但我无法操纵它,因为它选择了一个范围。有谁知道如何在选择内部确定图像?

wordApp.Selection.Expand wdParagraph

5 个答案:

答案 0 :(得分:1)

以下是我使用的内容:

wordApp.Selection.Find.Execute replace:=2
wordApp.Selection.Expand wdParagraph
wordApp.Selection.InlineShapes(1).Select

答案 1 :(得分:0)

我从来没有在Word中使用VBA,但这是一个快速思考。如果您将内嵌图像粘贴并立即尝试获取引用,则它应该是InlineShapes集合中的最后一项。此代码将为您提供可以使用的参考:

thisDocument.InlineShapes(thisDocument.InlineShapes.Count)

例如,要设置上一个粘贴图像的宽度,您将使用以下内容:

thisDocument.InlineShapes(thisDocument.InlineShapes.Count).Width = 100

将形状存储在变量中:

Dim pastedImage As InlineShape

Set pastedImage = ThisDocument.InlineShapes(ThisDocument.InlineShapes.Count)

答案 2 :(得分:0)

我也是这样做的。似乎在将图像粘贴到单词后,它已经被选中了。您可以使用下面的简单代码使用所选对象:

Selection.InlineShapes(1).Select

答案 3 :(得分:0)

我找到的解决方案是使用属性“AlternativeText”将粘贴的形状标记为旧,因此每当形状不老时,它必须是新形状。

我使用以下内容:

Dim pShape as InLineShape' The shape i'm looking for
Dim iShape as InlineShape

For Each iShape In ActiveDocument.InlineShapes
    If iShape.AlternativeText = "" Then
        Set pShape = iShape
        pShape.AlternativeText = "old"
        Exit For
    End If
Next

不是很干净,但在VBA中始终是一样的。

答案 4 :(得分:0)

您只需在光标位置左侧标记元素:

Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend