对于每个循环-文本从颜色X到Y

时间:2019-07-24 20:24:09

标签: vba powerpoint-vba

我正在使用VBA在PPT中制作基本游戏。组件之一是具有多项选择题的性格测验。我决定执行此操作的方法是将四个答案作为单独的文本框使用,默认颜色为黑色。单击任何文本块时,它将将该文本块中的文本更改为红色,并将所有其他文本块更改为黑色,从而一次仅1个文本块为红色。底部的按钮将确定哪个文本框具有红色文本,并根据该文本框将变量保存在用于计算个性类型的数组中。

现在,我想要一个循环语句,该语句在一张幻灯片中运行以评估文本。稍后,我将对其进行修改以接受传入的幻灯片编号(这样,我可以在每张幻灯片上使用带有问题的功能)。我什至不担心if语句决定何时交换颜色,我什至无法获得简单地更改所有文本的循环(应该很简单...)

如我所见,循环需要: 1)检查一张预定幻灯片中的每个对象,看是否有文字 2)将所有文本的颜色更改为在代码中输入的颜色。

''' 子fontChangeWhy()

Dim oSl As Slide
Dim oSh As Shape


oSl = ActivePresentation.Slides(2)

    For Each oSh In oSl.Shapes
        If oSh.HasTextFrame Then
            If oSh.TextFrame.HasText Then
                oSh.TextFrame.TextRange.Font.Color.RGB = RGB(0, 0, 0)
            End If
        End If
    Next oSh

结束子 '''

1 个答案:

答案 0 :(得分:1)

oSl是一个对象,因此需要设置

Set oSl = ActivePresentation.Slides(2)