PPT 如何保持每一页都有一个 logo ,且始终置顶?

2019年12月4日更新:
如果各位不想运行什么代码的话,直接推荐下载「Nordri Tools」,这个插件集成了类似的功能。


以下正文:

上周我让实习生妹子做一份 PowerPoint,要求在每页的固定位置上添加一个公司 logo。

下班前我问她做得怎么样了,她说内容都好了,还差几页就把 logo 都填充完整了。

啊?

我看她熟练的在每一页上不断的 Ctrl + C 、 Ctrl + V ……

停!

我说,「为什么你不用母板啊? 在母板视图里添加 logo ,这样每一页都有哦。」

妹子委屈的说,「这个方法我早就试过了,但是在很多页上会出现 logo 被其他图片挡住的情况。」

PPT 如何保持每一页都有一个 logo ,且始终置顶?_第1张图片
在模板视图里添加 logo
PPT 如何保持每一页都有一个 logo ,且始终置顶?_第2张图片
Ooops! logo 被图片挡住了
这一页看上去没加 logo
PPT 如何保持每一页都有一个 logo ,且始终置顶?_第3张图片
但是挪开图片后,才发现本页母板其实是加了 logo的

「那你试过把图片置顶、或者把占位符挪开的方法吗?」

「早就试过了,不然我也不会用这个笨办法一个个复制粘贴啊。」

怎么办?还有几份 PowerPoint 都需要加 logo,这样下去岂不是太机械化、重复化?

于是我想试试用 PowerPoint 自带的宏功能,看看能不能解决这个问题。

其实原理很简单,无非就是在每一页的固定位置上 insert 一张图片而已。

PPT 如何保持每一页都有一个 logo ,且始终置顶?_第4张图片
如何使用宏比较简单,本教程不打算细说,不懂的同学自己去搜。

代码如下:

Sub InsertLogoOnEveryPage()

Dim sld As Slide
Dim shp As Shape
Dim sFontName As String
Dim oTop As Single


sFontName = "Times"

For Each sld In ActivePresentation.Slides

    Debug.Print sld.Name

    sld.Shapes.AddPicture FileName:="D:\PATH\Classroom logo.jpg", _ 
        LinkToFile:=msoFalse, _
        SaveWithDocument:=msoTrue, Left:=850, Top:=440, _
        Width:=100, Height:=100

    For Each shp In sld.Shapes
        With shp
            If .HasTextFrame Then
                    If .TextFrame.HasText Then
                        .TextFrame.TextRange.Font.Name = sFontName
                    End If
                End If
        End With
    Next shp
    oTop = oTop + 10
Next sld

End Sub


其中我们主要改:

 sld.Shapes.AddPicture FileName:="D:\PATH\Classroom logo.jpg", _ \\公司 logo 图片的路径
        LinkToFile:=msoFalse, _
        SaveWithDocument:=msoTrue, Left:=850, Top:=440, _\\ 图片位置
        Width:=100, Height:=100\\ 图片大小
在开发者选项中,打开宏
PPT 如何保持每一页都有一个 logo ,且始终置顶?_第5张图片
在弹出窗口中输入宏名称,并点击创建

PPT 如何保持每一页都有一个 logo ,且始终置顶?_第6张图片
粘贴代码,并修改对应参数
点击运行

PPT 如何保持每一页都有一个 logo ,且始终置顶?_第7张图片
只需 1 秒,就发现所有幻灯片上都插入了 logo

最喜极而泣的是:每个 logo 都不再被 PPT 原有的图片、文本框挡住!

希望这段代码对你们有用 :)

后记

如果是在制作 PPT 的最初就在模板视图里编辑好占位符、设计元素,这种问题都不太可能会出现。
但有的时候,我们可能没有保存模板、或者是在别人七拼八凑的 PPT 上做修改,那么这种方式可能就派上用场了。

你可能感兴趣的:(PPT 如何保持每一页都有一个 logo ,且始终置顶?)