[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 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,小生准备了薄礼,还请海涵。

请测试:
  1. Sub ceshi()
  2. '在模板文件中按alt+f11,新建一模块,将代码粘贴进去,F5运行(工具-选项-宏安全性调为低)
  3. 'On Error Resume Next’测试无误后可将注释去掉
  4. Dim sh As Shape, ta1 As Table, ta2 As Table
  5.     ActivePresentation.Slides(5).Copy
  6.     Open "F:\桌面\123.txt" For Input As #1
  7.     arr = Split(StrConv(InputB(LOF(1), 1), vbUnicode), vbCrLf) '读取txt文本到数组
  8.     Close #1
  9.     n = 1
  10.     For i = 1 To UBound(arr) + 1
  11.         ActiveWindow.View.Paste
  12.     ac = ActivePresentation.Slides.Count
  13.         ActivePresentation.Slides(ac).Select
  14.         ActiveWindow.Selection.SlideRange(1).Shapes(1).TextFrame.TextRange = Split(arr(i), ",")(0) 'shapes(1)括号中到数字在出错时刻更改2,3,正确为止
  15.         '*------------------------------------------------------------------*
  16.         Set ta1 = ActiveWindow.Selection.SlideRange(2).Shapes(1).Table '填入第一个表格到两个数字
  17.         ta1.Cell(2, 2).Shape.TextFrame.TextRange = Split(arr(i), ",")(1)
  18.         ta1.Cell(2, 4).Shape.TextFrame.TextRange = Split(arr(i), ",")(2)
  19.         '*------------------------------------------------------------------*
  20.         Set ta2 = ActiveWindow.Selection.SlideRange(1).Shapes(3).Table '下面是插入图片
  21.         For c = 1 To 2
  22.             w = ta2.Cell(2, c).Shape.Width
  23.             h = ta2.Cell(2, c).Shape.Height
  24.             l = ta2.Cell(2, c).Shape.Left
  25.             t = ta2.Cell(2, c).Shape.Top
  26.             ActiveWindow.Selection.SlideRange.Shapes.AddPicture FileName:="修改成你的路径\" & n & ".jpg", LinkToFile:=msoFalse, SaveWithDocument:=msoTrue, Left:=l, Top:=t, Width:=w, Height:=h
  27.             n = n + 1
  28.             '*------------------------------------------------------------------*
  29.         Next
  30.     Next
  31.     ActivePresentation.SaveAs "C:\123.ppt"
  32. End Sub
复制代码

TOP

返回列表