PowerPoint 也可以通过 COM 自动化。素材包里的 PPT 脚本覆盖了几个很实用的方向:修改选中形状的颜色和线宽、批量添加动画、对齐和置顶置底、把 PPT 转成 PDF,以及从网页复制图片后自动新增幻灯片粘贴。

PPT 自动化的核心是理解 ApplicationActivePresentationActiveWindow.SelectionSlideRangeShapeRange 这几个对象。

一、获取 PowerPoint 对象

#Requires AutoHotkey v1.1
#NoEnv
#SingleInstance Force

try
    ppt := ComObjActive("PowerPoint.Application")
catch
{
    MsgBox, 请先打开 PowerPoint
    return
}

MsgBox, % "当前演示文稿:" ppt.ActivePresentation.Name

PPT 的很多操作都围绕当前选中的幻灯片或形状,所以脚本运行前要先让用户选中目标对象。

二、修改选中形状的线宽、颜色和形状类型

ppt := ComObjActive("PowerPoint.Application")
for shape in ppt.ActiveWindow.Selection.ShapeRange
{
    shape.Line.Weight := 1
    shape.Line.ForeColor.RGB := 0x000000
    shape.AutoShapeType := 5
}

AutoShapeType := 5 这类数字来自 Office 枚举。实际写脚本时,可以查 PowerPoint VBA 文档,或录制宏观察对应值。

三、给选中对象添加动画

ppt := ComObjActive("PowerPoint.Application")
slide := ppt.ActiveWindow.Selection.SlideRange(1)

for shape in ppt.ActiveWindow.Selection.ShapeRange
    slide.TimeLine.MainSequence.AddEffect(shape, 22, 0, 1, -1)

AddEffect 的参数比较多:形状、动画效果、级别、触发方式、插入位置。不同动画的编号可以查 Office 枚举,不建议靠猜。

四、对齐、分布、置顶置底

ppt := ComObjActive("PowerPoint.Application")
shapes := ppt.ActiveWindow.Selection.ShapeRange

shapes.Align(1, 0)       ; 水平居中
shapes.Align(4, 0)       ; 垂直居中
shapes.ZOrder(0)         ; 置于顶层

这类脚本特别适合做成热键工具:选中多个对象,按一下热键就完成对齐、分布或层级调整。

五、PPT 转 PDF

Ppt2Pdf(src, dest, quit := True) {
    ppt := ComObjCreate("PowerPoint.Application")
    pre := ppt.Presentations.Open(src, -1,, 0)
    pre.SaveAs(dest, 32)
    pre.Close()
    if (quit)
        ppt.Quit()
}

Ppt2Pdf(A_ScriptDir "\test.pptx", A_ScriptDir "\test.pdf")

SaveAs 的格式参数 32 对应 PDF。这个思路可以扩展成批量转换文件夹里的 PPT。

六、网页图片快速进 PPT

素材里还有一个前台思路:浏览器里复制图片,PPT 新增一页,并把图片粘贴进去。它适合整理大量网页图片到演示文稿。

ppt := ComObjActive("PowerPoint.Application")
count := ppt.ActivePresentation.Slides.Count
layout := ppt.ActivePresentation.Slides(count).CustomLayout

newIndex := count + 1
ppt.ActivePresentation.Slides.AddSlide(newIndex, layout)
ppt.ActivePresentation.Slides(newIndex).Select
ppt.ActiveWindow.Selection.SlideRange.Shapes.Paste

结语

PPT COM 自动化最适合处理重复版式、批量形状调整、统一动画、导出 PDF 这类任务。比起模拟鼠标去点功能区,直接操作 ShapeRange、SlideRange 和 Presentation 更稳定,也更容易做成可复用热键工具。

声明:站内资源为整理优化好的代码上传分享与学习研究,如果是开源代码基本都会标明出处,方便大家扩展学习路径。请不要恶意搬运,破坏站长辛苦整理维护的劳动成果。本站为爱好者分享站点,所有内容不作为商业行为。如若本站上传内容侵犯了原著者的合法权益,请联系我们进行删除下架。