【问题标题】:For Each Loop - Text from color X to Y对于每个循环 - 从颜色 X 到 Y 的文本
【发布时间】:2019-07-25 17:02:17
【问题描述】:

我正在使用 VBA 制作一个简单的 PPT 游戏。其中一个组成部分是带有多项选择题的性格测试。我决定这样做的方法是将四个答案作为单独的文本框,默认颜色为黑色。单击任何文本块时,它将将该文本块中的文本变为红色,并将所有其他文本块变为黑色,这样一次只有一个文本块是红色的。底部的按钮将确定哪个文本框有红色文本,并据此将变量保存在一个数组中,用于计算性格类型。

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

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

''' 子字体ChangeWhy()

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

结束子 '''

【问题讨论】:

    标签: vba powerpoint


    【解决方案1】:

    oSl是一个对象,所以需要设置

    Set oSl = ActivePresentation.Slides(2)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-07-19
      • 1970-01-01
      • 2012-09-01
      • 2022-11-05
      • 2017-03-14
      • 1970-01-01
      • 2013-11-22
      相关资源
      最近更新 更多