2010-01-08 90 views
7

如何以編程方式將使用VBA的圖像添加到Word文檔。將圖像添加到Word文檔並使用VBA對其進行縮放

我試過向word文檔添加書籤,並試圖添加圖像,但它總是添加到窗體的頂部而不是書籤區域。我應該堅持書籤還是有另一種方式來添加圖像?

參見下面我的代碼:

Dim wrdApp As Word.Application 
Dim wrdDoc As Word.Document 
Set wrdApp = CreateObject("Word.Application") 

Dim objWdRange As Word.Range 
Dim GraphImage As String 
Dim shortString As String 

shortString = Range("short").Value 

GraphImage = "http://xxx.xxxxx.com/xxx/xxx.png?instrument=Image.png" 

wrdApp.Visible = True 
Set wrdDoc = wrdApp.Documents.Open("C:\Program Files\My Dropbox\dailystrategy.doc") 

Set objWdRange = wrdDoc.Content 

With wrdDoc 


    If wrdDoc.Bookmarks.Exists("shortString ") Then 
     wrdDoc.Bookmarks("shortString ").Range.Text = shortString 
    End If  

    If wrdDoc.Bookmarks.Exists("GraphImage") Then 
     wrdDoc.Bookmarks("GraphImage").Range.InlineShapes.AddPicture Filename:=GraphImage, LinkToFile:=False, SaveWithDocument:=True 
    End If 


    wrdDoc.SaveAs "c:\temp\test.doc" 

    ' close the document 
    Set wrdDoc = Nothing 
    Set wrdApp = Nothing 
End With 

問候

回答

6

嗯,首先,我們需要清理你的代碼一點,像下面。這在我的網站上運行良好 - 它將圖像放置在GraphicImage書籤的前端,而不是位於文檔的頂部 - 但是,您的圖像可能會非常大並且會延伸到頂端?

Dim objWdRange As Word.Range 
Dim GraphImage As String 
Dim shortString As String 
shortString = Range("short").Value '? don't know what this is for 
GraphImage = "http://xxx.xxxxx.com/xxx/xxx.png?instrument=Image.png" 
wrdApp.Visible = True 
    Set wrdDoc = wrdApp.Documents.Open("C:\Program Files\My Dropbox\dailystrategy.doc") 
    Set objWdRange = wrdDoc.Content '? don't know what this is for 
    With wrdDoc 
     If .Bookmarks.Exists("shortString ") Then 
      .Bookmarks("shortString ").Range.Text = shortString 
     End If 
    If .Bookmarks.Exists("GraphImage") Then 
     Dim wrdPic As Word.InlineShape 
     Set wrdPic = .Bookmarks("GraphImage").Range.InlineShapes.AddPicture(FileName:=GraphImage, LinkToFile:=False, SaveWithDocument:=True) 
     wrdPic.ScaleHeight = 50 
     wrdPic.ScaleWidth = 50 
    End If 
     .SaveAs "c:\temp\test.doc" 
    End With 
    wrdDoc.Close 
    Set wrdDoc = Nothing 
    wrdApp.Quit 
    Set wrdApp = Nothing 

編輯:2010年1月11日 上面的代碼變更爲包括

If .Bookmarks.Exists("GraphImage") Then 
Dim wrdPic As Word.InlineShape 
Set wrdPic = .Bookmarks("GraphImage").Range.InlineShapes.AddPicture(FileName:=GraphImage, LinkToFile:=False, SaveWithDocument:=True) 
    wrdPic.ScaleHeight = 50 
    wrdPic.ScaleWidth = 50 
End If 

這將圖片作爲一個對象,然後使用所述縮放方法ScaleHeightScaleWidth使其高度和寬度都減小50%。

+0

嗨,謝謝你,你是對的,圖像被插入到正確的位置,但它的尺寸對於頁面來說太大了。有沒有辦法使用VBA以編程方式設置圖像尺寸? – Kojof 2010-01-11 10:57:28

+0

是的,你可以。您可以使用內聯形狀的高度/寬度屬性,也可以使用ScaleHeight/ScaleWidth,因爲我更新了上面的代碼。 – 2010-01-11 16:02:59

+0

謝謝你,非常感謝。 – Kojof 2010-01-11 17:34:02

相關問題