我正在尝试通过VBA在文档的首页标题中插入图片。
有很多行可以做到这一点,但是每行都有问题,我将列出:
这是我最喜欢的方法,但是它不会将图像插入到首页的标题中,而是插入所有剩余的图像,并且也不允许我设置位置:
ActiveDocument.Sections(1).Headers(2).Shapes.AddPicture ("C:\1.jpg")
这将返回超出范围的错误:
Set shpCanvas=ActiveDocument.Shapes.AddCanvas(Left:=0, Top:=0, Width:=180, Height:=50)
shpCanvas.CanvasItems.AddPicture FileName:="C:\1.jpg", LinkToFile:=False, SaveWithDocument:=True
直接插入图像,但通常位置不正确,停留在标题的中间,我希望将其放在左侧
ActiveDocument.Sections(1).Headers(wdHeaderFooterFirstPage).Range.InlineShapes.AddPicture ("C:\1.jpg")
我只是VBA和文字方面的初学者,对于可能出现的任何怪异想法,我深表歉意
答案 0 :(得分:1)
第一个代码示例确实对我有用-我在第一页上看到了图片。但是,由于您没有描述文档的结构,因此我可能没有测试您使用的文档...
您不应尝试使用画布。
Shape
和InlineShape
之间的区别在于Word将其当作文本字符来处理。如果第三行将图片定位在该行的中间,则该段落的格式可能设置为“居中”,而不是“左”。尝试更改段落格式。
要在使用Shape
时定位结果,需要一个对象变量才能处理已插入的内容。例如:
Dim shp As Word.Shape, ils As Word.InlineShape
Set shp = ActiveDocument.Sections(1).Headers(2).Shapes.AddPicture("C:\1.jpg")
shp.Top = 0
shp.Left = 0
声明一个对象,然后一步将插入的图片分配给该对象。随后,对象变量可用于对图片进行寻址。
答案 1 :(得分:0)
感谢您的帮助,更准确地说,它是这样工作的
Dim shp2 As Word.Shape
Dim shp3 As Word.InlineShape
Set shp3 = ActiveDocument.Sections(1).Headers(wdHeaderFooterFirstPage).Range.InlineShapes.AddPicture("C:\1.jpg")
Set shp2 = shp3.ConvertToShape
shp2.Top = 0
shp2.Left = 0