2010-01-08 25 views
7

làm cách nào để lập trình thêm hình ảnh bằng cách sử dụng VBA vào tài liệu từ.Thêm một hình ảnh vào tài liệu Word và chia tỷ lệ nó bằng cách sử dụng VBA

Tôi đã thử thêm dấu trang vào tài liệu từ và đã cố thêm hình ảnh nhưng nó luôn thêm vào đầu biểu mẫu thay vì khu vực dấu trang. Tôi có nên kiên trì với dấu trang hoặc có cách nào khác để thêm hình ảnh không?

Xem mã của tôi dưới đây:

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 

liên quan

Trả lời

6

Vâng, trước hết chúng ta cần phải dọn dẹp mã của bạn một chút, như dưới đây. Điều này chạy tốt trên trang web của tôi - nó đặt hình ảnh ngay ở phía trước của bookmark GraphicImage, không phải ở phía trên cùng của tài liệu - nhưng có lẽ hình ảnh của bạn là quá lớn nó kéo dài đến đỉnh?

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 

EDIT: ngày 11 tháng 1 năm 2010 Đoạn mã trên được thay đổi để bao gồm

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 

này đặt hình ảnh như một đối tượng và sau đó sử dụng phương pháp mở rộng quy mô ScaleHeightScaleWidth để làm cho nó Nhỏ hơn 50% ở cả chiều cao và chiều rộng.

+0

hi, cảm ơn vì điều đó, bạn nói đúng, hình ảnh đang được chèn vào đúng vị trí, nhưng đó là hình ảnh quá lớn đối với trang. Có anyway thiết lập các kích thước hình ảnh programatically bằng cách sử dụng VBA? – Kojof

+0

Có, bạn có thể. Bạn có thể sử dụng thuộc tính Chiều cao/Chiều rộng của Hình dạng Nội tuyến hoặc bạn có thể sử dụng ScaleHeight/ScaleWidth vì tôi đã cập nhật mã ở trên bằng. –

+0

cảm ơn vì điều đó, được nhiều người đánh giá cao. – Kojof

Các vấn đề liên quan