Powerpoint:如何在幻灯片中插入文档属性(又名“字段”)?

Rab*_*ski 38 properties field-codes microsoft-powerpoint

如何在 PowerPoint 2007 的幻灯片中插入文档属性(例如作者姓名)?我知道这可以在 Microsoft Word 中完成,但我找不到如何在 PowerPoint 中完成。

(这个想法是,使用文档属性很容易更改例如所有幻灯片中页脚的内容,即使您使用不同的母版页。如果有不同的解决方案,那也很好。)

Meh*_*lar 23

虽然 Word 可以做到这一点,但 PowerPoint 不能。AFAIK,您可以在 PPT 中拥有文档属性,但不能将它们插入到幻灯片中。PowerPoint 唯一可用的更新字段是日期和幻灯片编号。无论如何,VBA 中可能有一些解决方法来实现这一点。你可以在 Stackoverflow 上问这个来抓住机会。


P.B*_*oyd 7

刚刚编写了一个子例程,将命名属性放入所有幻灯片上的标记文本对象中。

将文件属性放在幻灯片上。创建一个文本框来保存字符串。在属性/替代文本中,将属性名称放入方括号中。

然后执行宏updateProperties()

[title]- 将允许在多个文件标题上更新

已写入两个特殊标签:

  • [copyright]将插入版权字符串,即© 1998-2013 P.Boothroyd, NIS Oskemen
  • [page] 将从编辑器选项卡插入幻灯片编号
  • ' 将文档属性复制到所有幻灯片中
    ' (c) 2013, P.Boothroyd for NIS Oskemen
    将流程页面调暗为幻灯片
    
    子更新属性()
        将页面调暗为幻灯片
        Dim propname As String
        ' 解析当前演示文稿(文档)中的所有幻灯片
        对于 Application.ActivePresentation.Slides 中的每个 processPage
            ' 扫描页面的所有元素,寻找带有“[”标签的“altText/title”字段的文本框
            对于每个 obj 在 processPage.Shapes
                If Left(obj.Title, 1) = "[" Then
                    Dim sStart,sEnd 为整数
                    ' 从方括号之间提取属性
                    sStart = 2
                    sEnd = InStr(2, obj.Title, "]")
                    propname = Trim(Mid(obj.Title, sStart, sEnd - 2))
                    如果 obj.Type = msoTextBox 那么
                        ' 将文本框设置为请求的值
                        obj.TextFrame.TextRange.Text = getProperty(propname, obj.TextFrame.TextRange.Text)
                    万一
                万一
            下一个'对象
        下一页
    结束子
    
    ' 获取指定的文档属性(具有可选的默认值)
    函数 getProperty(propname, Optional def As String) As String
        ' 属性分配了默认值
        getProperty = def
        Dim 发现为布尔值
        发现 = 错误
        propname = LCase(propname)
    
        ' 版权是一种生成的财产
        如果 propname = "copyright" 然后
            昏暗的作者作为字符串
            Dim company As String
            Dim yearFrom As String
            Dim yearTo As String
    
            ' 获取所有合适的变量
            author = getProperty("作者", "")
            company = getProperty("公司", "")
            yearFrom = getProperty("创建", "")
            yearTo = 格式(现在(),“YYYY”)
    
            ' 插入版权符号
            getProperty = Chr(169) + " "
    
            ' 附上版权声明的年份跨度
            如果一年从一年到那么
                getProperty = getProperty + yearFrom + "-"
            万一
            getProperty = getProperty + yearTo
    
            ' 添加作者
            getProperty = getProperty + " " + 作者
    
            ' 如果两者都存在,则为作者/公司添加分隔符
            如果 Len(author) > 0 And Len(company) > 0 那么
                getProperty = getProperty & ", "
            万一
            getProperty = getProperty & 公司
    
            ' 处理,所以返回值
            发现 = 真
        万一
    
        ' 在文档中插入幻灯片编号
        如果 propname = "page" 那么
            getProperty = processPage.SlideNumber
            发现 = 真
        万一
    
        ' 如果生成的名称创建返回值
        如果找到然后转到 ret
    
        ' 扫描指定值的标准 MS(文件)属性
        对于 Application.ActivePresentation.BuiltInDocumentProperties 中的每个 p
            如果 LCase(p.Name) = propname 那么
                getProperty = p.Value
                发现 = 真
                退出
            万一
        下一个
    
        ' 扫描命名值的自定义属性
        如果找到然后转到 ret
        对于 Application.ActivePresentation.CustomDocumentProperties 中的每个 p
            如果 LCase(p.Name) = propname 那么
                getProperty = p.Value
                发现 = 真
                退出
            万一
        下一个
    回复:
    结束函数