2014-02-12 121 views
0

我刚刚开始学习VBA for PowerPoint(大约30分钟前)的编程。谁能帮我?:以下VBA宏用于更改注释颜色

我想宏通过所有幻灯片注释循环和更改文本为白色

(我知道有非宏替代这一点,但第三第三方软件(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 

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

谢谢!

回答

0

欢迎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 
+0

史蒂夫。 你是一个怪胎的传奇人物。我建议你访问你的社交媒体渠道并宣布这一事实。人们需要知道。 现在我拥有这样的知识,我将继续并改变文本的大小和音符的对齐方式。 非常感谢你;我永远感激, 乔 –

+0

乔 - ;-)一个温和的传说,也许。很高兴帮助。 –

+0

Font.Color属性是只读的。您需要使用Font.Color.RGB = RGB(255,255,255),而不是每个MSDN https://msdn.microsoft.com/en-us/library/office/ff744240.aspx?f=255&MSPPError=- 2147217396。 – OfficeAddinDev