Отображение случайного числа в PowerPoint с помощью VBA - PullRequest
0 голосов
/ 17 июня 2020

Итак, итого VBA-newb ie здесь. Я создавал игру PowerPoint, в которой мне нужно генерировать случайное число от 1 до 30 и отображать его на каждом слайде. Я нашел в сети следующий код, который в некоторой степени делает то, что мне нужно:

Sub UpdateRandomNumber(oSh As Shape)
Dim X As Long
'Make the shape’s text a random number
'X or less
'Change 12 below to any number you’d like:
X = 30

oSh.TextFrame.TextRange.Text = CStr(Random(X))
End Sub

Function Random(High As Long) As Long
'Generates a random number less than or equal to
'the value passed in High
Randomize
Random = Int((High * Rnd) + 1)
End Function
Sub RandomNumber()

End Sub

Однако мне нужен код, чтобы делать одно по-другому: объект, запрашивающий действие, находится в одном месте на всех слайдах. При генерации и отображении случайного числа все слайды должны быть соответственно изменены. Поэтому, когда я покидаю слайд, должен отображаться ранее созданный номер вместо того, который был ранее создан на этом слайде. Любая помощь будет принята с благодарностью!

1 Ответ

1 голос
/ 18 июня 2020

Это создает случайное число от 1 до 30. Измените имя формы на фактическую форму, используемую в вашем файле:

Sub ShapeNumber()
    Dim X As Long
    Dim ShapeNumber As String
    Dim oSlide As Slide
    Dim oShape As Shape

    X = 30
    Randomize
    ShapeNumber = Int((X * Rnd) + 1)
    For Each oSlide In ActivePresentation.Slides
        For Each oShape In oSlide.Shapes
            If oShape.Name = "Rectangle 3" Then
                oShape.TextFrame.TextRange.Text = ShapeNumber
            End If
        Next oShape
    Next oSlide
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...