gpt4 book ai didi

vba - 使用随机数进行计算

转载 作者:行者123 更新时间:2023-12-04 12:52:47 25 4
gpt4 key购买 nike

我正在尝试制作一个数学练习幻灯片,其中使用数字 1 - 20 向学生展示随机加法问题。我一直在学习 David Markovtiz(和其他人)的教程,并使用他的代码作为起点。由于我的听众是年轻学生,我希望数学问题不在消息框中,而是在文本框或形状之类的东西中,我可以自定义并使其变大且对年轻学生具有视觉吸引力。

所以,我想要做什么...
在幻灯片中

  • 学生可以单击“开始”按钮,将他们带到下一张幻灯片
  • 下一张幻灯片会自动生成 2 个学生必须相加的随机数。
  • 学生输入答案
  • 如果答案是正确的——我想要一些东西来表示答案是正确的,但不是他们必须点击才能关闭的东西。理想情况下,一个小星星在角落里闪烁然后消失
  • 如果答案不正确,则消息或图片会闪烁然后消失。
  • 一个新的添加问题是自动/随机生成的
    我想将加法问题的数量设置为例如20,然后让幻灯片移动到评分幻灯片,在图片中显示他们的分数,例如每个正确答案都给一颗星。

  • 更新:
    使用 Activex 文本框:


    我在使用 activex 文本框方面取得了成功,能够随机显示两个数字并让它们相乘并在第三个 activex 文本框中显示答案,我将其隐藏在幻灯片之外。我使用第四个作为输入框让学生输入他们的答案。如果这与第三个框中的答案相同,我可以显示一颗星并清除这些框,然后移至下一张幻灯片。如果不一样,我可以去展示另一张图片,然后移到下一张幻灯片。 (我最初希望幻灯片更新并使用一张幻灯片提出 20 个问题,但发现这很难。)

    目前,这需要单击三个命令按钮。

    到目前为止我所管理的 (我知道这对您来说似乎很可悲并且可能不稳定,但对我来说是一项重大成就并且“位”正在发挥作用)我可以管理它进行乘法但是当我 + 值时,例如9 + 3,我得到 93
    Private Sub CommandButton1_Click()
    TextBox1.Value = Int(10 * Rnd)
    TextBox2.Value = Int(10 * Rnd)
    TextBox3.Value = TextBox1.Value * TextBox2.Value
    End Sub

    Private Sub CommandButton2_Click()
    If TextBox4.Value = TextBox3.Value Then
    ActivePresentation.Slides("problem").Shapes("badge5").Visible = True
    ActivePresentation.Slides("score").Shapes("badge5").Visible = True
    Else
    ActivePresentation.Slides("problem" _).Shapes("incorrect").Visible = True

    TextBox1.Value = ""
    TextBox2.Value = ""
    TextBox3.Value = ""
    TextBox4.Value = ""
    End If
    End Sub

    Private Sub CommandButton3_Click()
    SlideShowWindows(1).View.Next
    End Sub

    我需要什么

    我希望命令按钮 1 中的随机数自动激活。

    我想组合命令按钮 2 和 3 并在移动到下一张幻灯片之前包含星形或不正确形状出现后的等待时间,但我发现的代码将等待时间应用于整个序列,因为我不确定如何包括它。
    Private Sub Time_Click()
    iTime = 2#
    Start = Timer

    While Timer < Start + iTime
    Wend

    With SlideShowWindows(1).View.Next
    End With
    End Sub

    使用形状:
    我更喜欢使用普通的文本框或形状,但是...
    我已经设法生成形状中的随机数,但无法将它们相乘,并让学生在 activex 文本框中键入以确定它是正确还是不正确。我认为问题在于尝试同时使用形状和 activex 文本框。

    我想使用形状,因为我想创建可以使用以下代码选择的主幻灯片布局 - 尽管这不是一个交易破坏者。
    Sub background()
    ActivePresentation.Slides.Range(Array(2, 3, 4, 5)).CustomLayout_
    = ActivePresentation.Designs(1).SlideMaster.CustomLayouts(6)
    End Sub

    我觉得这是其他教育 worker 可以使用的东西,如果有人愿意并能够协助编码,我很乐意发布我完成的节目。我真的很感激贡献者对像我这样的人所表现出的宽容和耐心,他们首先跳了起来,兴奋地尝试了一下,但仍在挣扎。

    最佳答案

    因此,为了分解您在“我需要什么”部分中要求的部分,我将我的答案分为两部分:

    “我希望命令按钮 1 中的随机数自动激活。”

    我假设您所说的“自动”是指在用户回答上一张幻灯片上的问题后,您希望“下一张”幻灯片自动填充值。为了实现此功能,我将在运行 CommandButton2 中的所有逻辑后调用 CommandButton1 当前调用的方法。

    “我想将命令按钮 2 和 3 结合起来,并在移动到下一张幻灯片之前包括星形或错误形状出现后的等待时间...”

    我会简单地将两个函数的代码与两个代码位之间的等待函数结合起来。我不确定你在哪里找到你为“Timer_Click”函数发布的代码,我认为这不会像当前发布的那样工作。我通常会使用此 answer 中提到的“等待”方法.

    结果,在更改了两个新需求的代码后,将是这样的:

    Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

    Public Sub CommandButton2_Click()
    'Command Button 2(code)
    If TextBox4.value = TextBox3.value Then
    ActivePresentation.slides("problem").Shapes("badge5").visible = True
    ActivePresentation.slides("score").Shapes("badge5").visible = True
    Else
    ActivePresentation.slides("problem").Shapes("incorrect").visible = True

    TextBox1.value = ""
    TextBox2.value = ""
    TextBox3.value = ""
    TextBox4.value = ""
    End If

    'Wait code here(1000ms)
    Sleep 1000

    'Command Button 3(code)
    SlideShowWindows(1).View.Next

    'Call the command for CommandButton1,
    'this will "automatically" populate the slide with new values
    CommandButton1_Click
    End Sub

    关于vba - 使用随机数进行计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36096365/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com