VBA Powerpoint 2010替换页眉和页脚中的文本

时间:2016-03-02 05:48:59

标签: excel vba excel-vba powerpoint-vba powerpoint-2010

挑战替换PowerPoint模板页眉/页脚中的[DOCID#]代码。我注意到在PowerPoint对象浏览器中,在演示文稿的许多部分(SlideMaster,NotesMaster,HandoutMaster,TitleMaster,然后是每个单独的幻灯片)中都可以找到页眉和页脚。我正在运行XL中的代码,并且已经使用了对PowerPoint库的引用。

   Set ppPres = ppApp.Presentations.Open(sTemplate)

    Set ppMaster = ppPres.SlideMaster
    With ppMaster.HeadersFooters
        .Footer.Text = Replace(.Footer.Text, "[DOCID#]", sDocID)
    End With
    If ppPres.HasNotesMaster Then
        Set ppMaster = ppPres.NotesMaster
        With ppMaster.HeadersFooters
            .Footer.Text = Replace(.Footer.Text, "[DOCID#]", sDocID)
            .Header.Text = Replace(.Header.Text, "[DOCID#]", sDocID)
        End With
    End If
    If ppPres.HasHandoutMaster Then
        Set ppMaster = ppPres.HandoutMaster
        With ppMaster.HeadersFooters
            .Footer.Text = Replace(.Footer.Text, "[DOCID#]", sDocID)
            .Header.Text = Replace(.Header.Text, "[DOCID#]", sDocID)
        End With
    End If
    If ppPres.HasTitleMaster Then
        Set ppMaster = ppPres.TitleMaster
        With ppMaster.HeadersFooters
            .Footer.Text = Replace(.Footer.Text, "[DOCID#]", sDocID)
        End With
    End If
    For Each ppSlide In ppPres.Slides
        With ppSlide.HeadersFooters
            .Footer.Text = Replace(.Footer.Text, "[DOCID#]", sDocID)
        End With
    Next ppSlide

大部分代码都会运行,但是,即使正确调整了监视窗口中的对象,“讲义”和“注释主标题”也不会更改文本。当单步执行代码并在结尾处暂停时,我从PowerPoint功能区打开“插入页眉/页脚”,并找到正确调整的对话框字段,但Notes仍然具有[DOCID#]代码。

我还注意到,从客户提供的模板,演示文稿可以有.HasTitleMaster返回True,但是当我尝试访问.Footer.Text时出现错误(无效对象......)

有什么想法吗?

0 个答案:

没有答案