2011-10-03 240 views
3
粘貼到Word

使用以下你如何選擇剛通過VBA

wordApp.Selection.PasteSpecial DataType:=wdPasteMetafilePicture, Placement:=wdInLine 

我的想法是向左移動一個字符,然後選擇下一個對象剛剛粘貼圖像到Word中VBA的圖像,但我不知道該怎麼做。

編輯:

那麼這裏有一些encoraging發展,使用下面的行,我能選擇的段落,其中包括圖像,但由於它的選擇範圍,我不能操縱它。有誰知道我怎樣才能在選擇內部鎖定圖像?

wordApp.Selection.Expand wdParagraph 

回答

1

下面是我用什麼:

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

我從來沒有在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) 
+0

嗨Banjoe 我實際使用不同的方法來引用,但我覺得你的工作太。 – Bill

+0

這個方法對我來說是完美的,因爲我一個一個地粘貼和修改圖像。謝謝! +1 – MJA

0

我也在做同樣的事情。看起來,將圖像粘貼到單詞後,其已被選中。你可以使用所選的對象與下面的簡單代碼:

Selection.InlineShapes(1).Select 
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是永遠不變的。

0

你可以簡單地從標記光標位置留下的元素:

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