2010-01-08 4 views
7

VBA를 사용하여 이미지를 프로그래밍 방식으로 워드 문서에 추가하려면 어떻게합니까?Word 문서에 이미지 추가 및 VBA를 사용하여 크기 조정

문서라는 단어에 북마크를 추가하고 이미지 추가를 시도했지만 북마크 영역이 아닌 양식의 상단에 항상 추가됩니다. 북마크에 인내해야할까요, 아니면 이미지를 추가 할 다른 방법이 있습니까?

아래 내 코드를 참조하십시오 :

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 

EDIT : 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

+0

예, 가능합니다. 인라인 도형의 Height/Width 속성을 사용하거나 ScaleHeight/ScaleWidth를 사용하여 위의 코드를 업데이트 할 수 있습니다. –

+0

감사합니다. 많은 감사를드립니다. – Kojof