将图像添加到Word文档并使用VBA缩放 [英] Add an Image to Word Document and Scale it using VBA
问题描述
如何使用VBA以编程方式向Word文档添加图像.
how do i programatically add an image using VBA to a word document.
我已经尝试在word文档中添加书签,并尝试添加图像,但是它总是添加到表单的顶部,而不是书签区域.我应该坚持使用书签还是有其他添加图像的方法?
I've tried adding a bookmark to the word document and tried adding the image, but it always adds to the top of the form rather than the bookmark area. Should i persevere with the bookmark or is there another way to add the image?
请参阅下面的代码:
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
致谢
推荐答案
首先,我们需要对您的代码进行一些整理,如下所示.在我的网站上,它运行得很好-将图像放置在GraphicImage书签的前面,而不是文档的顶部-但是也许您的图像太大了,甚至可以延伸到顶部?
Well, first we need to clean up your code a bit, like below. This runs fine on my site - it places the image right at the front of the GraphicImage bookmark, not at the top of the document - but maybe your image is so large it extends to the top?
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日 上面的代码已更改为包含
Jan 11, 2010 The above code was changed to include
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
这会将图片设置为对象,然后使用缩放方法ScaleHeight
和ScaleWidth
将其高度和宽度缩小50%.
This sets the picture as an object and then uses the scaling methods ScaleHeight
and ScaleWidth
to make it 50% smaller in both height and width.
这篇关于将图像添加到Word文档并使用VBA缩放的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!