使用以下
将图像粘贴到VBA中的MS WordwordApp.Selection.PasteSpecial DataType:=wdPasteMetafilePicture, Placement:=wdInLine
我的想法是向左移动一个字符然后选择下一个对象,但我不知道该怎么做。
编辑:
这里有一些加密的开发,使用以下行,我能够选择包含图像的段落,但我无法操纵它,因为它选择了一个范围。有谁知道如何在选择内部确定图像?
wordApp.Selection.Expand wdParagraph
答案 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