2010-01-08 20 views
7

VBA kullanarak bir görüntüyü nasıl bir sözcük belgesine ekleyebilirim?Word Belgeye Resim Ekleme ve VBA ile ölçeklendirme

Word belgesine bir yer imi eklemeyi denedim ve görüntü eklemeyi denedim, ancak her zaman yer imi alanı yerine formun en üstüne ekleniyor. Yer imine uymalı mıyım yoksa resmi eklemenin başka bir yolu var mı?

aşağıda kodum bakınız:

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 

Saygılarımızla

cevap

6

Öncelikle aşağıda gibi, kod biraz temizlemek gerekir. Bu, sitemde iyi çalışıyor - görüntüyü, belgenin en üstünde değil, GraphicImage yer iminin ön tarafına yerleştiriyor - ancak belki de sizin görüntünüz o kadar geniş bir alana yayılıyor?

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 

DÜZENLEME: 11 Ocak 2010 Yukarıdaki kod Bu bir nesne olarak resmi koyar

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 

kapsayacak şekilde değiştirildi ve daha sonra ölçekleme yöntemleri ScaleHeight ve ScaleWidth bunu yapmak için kullandığı edildi Hem yükseklik hem de genişlikte% 50 daha küçük.

+0

Merhaba, bunun için teşekkürler, haklısınız, görüntü doğru yere yerleştiriliyor, ancak boyutlar sayfa için çok büyük. Görüntü boyutlarını VBA kullanarak programatik olarak ayarlama var mı? – Kojof

+0

Evet, yapabilirsin. Bir Satır Satırının Yükseklik/Genişlik özelliklerini kullanabilir veya yukarıdaki kodu güncellediğim gibi ScaleHeight/ScaleWidth'i kullanabilirsiniz. –

+0

Bunun için teşekkürler, çok takdir. – Kojof

İlgili konular