标题: [文本处理] BAT批处理怎样自动写入PPT程序? [打印本页]
作者: zhengwei007 时间: 2014-5-6 16:35 标题: BAT批处理怎样自动写入PPT程序?
我有一个PPT文件,里面从第5页开始需要程序自动化。
1、该PPT页为模版页
2、根据带逗号的文本文件(如图),第1行为标题,从第二行开始按行分别填入模版页的3处红色英文字母中的内容。
3、文本文件中第二列则自动创建PPT第6页,并且自动填写第二列内容,以此类推,直到文本文件填写完毕。
4、根据图片顺序,依次将1.jpg、2.jpg填入第5页的两张图片位置,3.jpg、4.jpg填入第6页的图片位置,以此类推。若图片填充数量小于文本行数,则图片位置留空即可。
附件是模版,请大家帮我这个忙,谢谢!
若图片无法完成,文字也行。模版比较大,1M多无法上传,请加我QQ:104386,小生准备了薄礼,还请海涵。
作者: zhanglei1371 时间: 2014-5-7 14:04
请测试:- Sub ceshi()
- '在模板文件中按alt+f11,新建一模块,将代码粘贴进去,F5运行(工具-选项-宏安全性调为低)
- 'On Error Resume Next’测试无误后可将注释去掉
- Dim sh As Shape, ta1 As Table, ta2 As Table
- ActivePresentation.Slides(5).Copy
- Open "F:\桌面\123.txt" For Input As #1
- arr = Split(StrConv(InputB(LOF(1), 1), vbUnicode), vbCrLf) '读取txt文本到数组
- Close #1
- n = 1
- For i = 1 To UBound(arr) + 1
- ActiveWindow.View.Paste
- ac = ActivePresentation.Slides.Count
- ActivePresentation.Slides(ac).Select
- ActiveWindow.Selection.SlideRange(1).Shapes(1).TextFrame.TextRange = Split(arr(i), ",")(0) 'shapes(1)括号中到数字在出错时刻更改2,3,正确为止
- '*------------------------------------------------------------------*
- Set ta1 = ActiveWindow.Selection.SlideRange(2).Shapes(1).Table '填入第一个表格到两个数字
- ta1.Cell(2, 2).Shape.TextFrame.TextRange = Split(arr(i), ",")(1)
- ta1.Cell(2, 4).Shape.TextFrame.TextRange = Split(arr(i), ",")(2)
- '*------------------------------------------------------------------*
- Set ta2 = ActiveWindow.Selection.SlideRange(1).Shapes(3).Table '下面是插入图片
- For c = 1 To 2
- w = ta2.Cell(2, c).Shape.Width
- h = ta2.Cell(2, c).Shape.Height
- l = ta2.Cell(2, c).Shape.Left
- t = ta2.Cell(2, c).Shape.Top
- ActiveWindow.Selection.SlideRange.Shapes.AddPicture FileName:="修改成你的路径\" & n & ".jpg", LinkToFile:=msoFalse, SaveWithDocument:=msoTrue, Left:=l, Top:=t, Width:=w, Height:=h
- n = n + 1
- '*------------------------------------------------------------------*
- Next
- Next
- ActivePresentation.SaveAs "C:\123.ppt"
- End Sub
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |