【问题标题】:VBA Macro for Powerpoint to change Notes color用于 Powerpoint 的 VBA 宏更改笔记颜色
【发布时间】:2015-10-19 23:41:13
【问题描述】:

我刚刚开始学习 VBA for PowerPoint 编程(大约 30 分钟前)。谁能帮我解决以下问题?:

我想要一个循环遍历所有幻灯片注释并将文本更改为白色的宏

(我知道有非宏替代品,但第三方软件(Articulate)要求它通过宏来完成......长篇大论)。

这是我目前所拥有的:

Sub changenotestowhite()
   Dim osld As Slide
   Dim oshp As Shape
   Dim strNotes As String
   For Each osld In ActivePresentation.Slides
      For Each oshp In osld.NotesPage.Shapes
         oshp.TextFrame.TextRange.Font.Color = vbWhite
      Next oshp
   Next osld
End Sub

我收到错误消息“运行时错误:指定的值超出范围。”

谢谢!

乔

【问题讨论】:

    标签: vba powerpoint


    【解决方案1】:

    欢迎来到 MS/VB 的著名红鲱鱼(又名错误消息)的世界。

    问题是这样的:有些形状没有文本框(保存文本的形状的属性),即使形状有文本框,其中也可能没有任何文本。尝试更改不存在的文本或不存在的文本框架中的文本将引发错误。

    改用这个,它会测试文本框,如果存在,在以任何方式更改文本之前,文本框是否有文本:

    Sub changenotestowhite()
       Dim osld As Slide
       Dim oshp As Shape
       Dim strNotes As String
       For Each osld In ActivePresentation.Slides
          For Each oshp In osld.NotesPage.Shapes
            If oshp.HasTextFrame Then
            If oshp.TextFrame.HasText Then
             oshp.TextFrame.TextRange.Font.Color = vbWhite
             End If
             End If
          Next oshp
       Next osld
    End Sub
    

    【讨论】:

    • 史蒂夫。你是一个该死的传奇。我建议您访问您的社交媒体渠道并声明这一事实。人们需要知道。现在我掌握了这些知识,我将继续更改注释的文本大小和对齐方式。太感谢了;我永远感激,乔
    • Joe -- ;-) 也许是个不起眼的传奇。很高兴它有帮助。
    • Font.Color 属性是只读的。根据 MSDN msdn.microsoft.com/en-us/library/office/…,您需要使用 Font.Color.RGB = RGB(255, 255, 255)。
    • 它也可以像写的那样工作( .Font.Color = vbWhite )所以我没有改变乔的那部分代码。但是 .Font.Color.RGB = RGB(r,g,b) 提供了比使用 vbColor 常量更多的选项。您的链接指向只读的 .Font 属性。再深入一点,您将看到 .Font 对象的 .Color 属性,MSDN 也将其声明为只读。显然 MSDN 或 PowerPoint 关于 PowerPoint 的属性是错误的。 ;-) PPT VBA 的 MSDN 文档充满了错误。
    猜你喜欢
    • 1970-01-01
    • 2015-07-24
    • 1970-01-01
    • 2017-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-16
    相关资源
    最近更新 更多