【已解决】求教WORD如何批量按顺序添加图片到指定页?
本帖最后由 zghwelcome 于 2016-12-13 20:28 编辑@kevinch
请教K大个word的问题,谢谢!
当前目录有 1.jpg 2.jpg 3.jpg ... 10.jpg10张图片,
请问如何建立一个新的word文档,把图片按顺序插入到 word的 1-10页,并且在每个图片后面加入一段文字,如下:
第一页内容:
这是图片1
第2页内容:
这是图片2
...
第10页内容:
这是图片10
需求效果示例:
$word=ObjCreate("word.application")
$word.visible=True
$doc=$word.documents.add
;$doc.saveas(@ScriptDir&"\test.doc")
With $doc.application.selection
For $n=1 To 10
$fn=@ScriptDir&"\"&$n&".jpg"
If FileExists($fn) Then
.inlineshapes.addpicture($fn,false,true)
.endkey(6)
.typeparagrah
.typetext("这是第"&$n&"张图片"&@CRLF)
.insertbreak(0)
EndIf
Next
EndWith测试代码,楼主试一下 $word=ObjCreate("word.application") ;创建word进程
$word.visible=True;进程界面可见
$doc=$word.documents.add;添加一个新文档
;$doc.saveas(@ScriptDir&"\test.doc") ;保存文档
With $doc.application.selection
For $n=1 To 10
$fn=@ScriptDir&"\"&$n&".jpg"
If FileExists($fn) Then
.inlineshapes.addpicture($fn,false,true) ;插入图片,第二个参数是指是否插入链接,第三个参数是是否同文档一同保存
.endkey(6) ;跳到文档最后
.typeparagrah ;添加一个回车换行符,这句也可以取消,下一句代码前增加一个@crlf即可
.typetext("这是第"&$n&"张图片"&@CRLF) ;在当前光标位置录入文字
.insertbreak(0) ;插入一个分页符
EndIf
Next
EndWith注释一下,方便理解 回复 3# kevinch
谢谢K大的帮助! 回复 4# zghwelcome
老話一句 kevinch是 VBA 的權威 呵呵 回复 5# kk_lee69
是啊,崇拜了{:face (411):} 回复 3# kevinch
K大,再请教一个问题, 之前建立的 10页文档,能否实现1-10页中任意取一页的内容到粘贴板呢?就是包括图片和文字信息到粘贴板
我在第一页用宏录制的如下,不知道这个页数是怎么选的啊
Sub Macro1()
Selection.MoveUp Unit:=wdLine, Count:=4, Extend:=wdExtend
Selection.Copy
End Sub 以复制第二页为例with $doc.application.selection
.goto(1,1,2) ;跳到第二页
$start=.range.start;记住第二页的起始位置
.goto(1,1,3) ;跳到第三页
$doc.range($start,.range.start-1).copy;根据第二页的起始位置及第三页的起始位置定位第二页内容进行复制
end with
以上代码,供大家参考 请问 K大,怎么让插入的图片和文字都居中显示呢? 回复 9# macran
inlineshapes.addpicture和typetext后面加一句
.paragraphformat.alignment=1;0左对齐,1居中,2右对齐 谢谢K大,
开始我按照你说的在插入以后添加
.paragraphformat.alignment=1
发现第一页不能居中,后面页的可以居中。
后来我干脆把 .paragraphformat.alignment=1 放在插入图片和内容之前。问题解决了。 谢谢,受教了
页:
[1]