Странный баг на powerpoint vba

У меня есть текстовое поле "mynote" на слайде. Если я выполню:

Sub test()

            If ActiveWindow.Selection.SlideRange.Shapes("mynote").Visible Then
                MsgBox "ok"
            End If
end sub

Оно работает.

Но если я прикреплю форму с этим макросом:

Sub test(oShape As Shape)

            If ActiveWindow.Selection.SlideRange.Shapes("mynote").Visible Then
                MsgBox "ok"
            End If
end sub

Это не работает (нет сообщения об ошибке, нет сообщения "ОК")

1 ответ

Это будет зависеть от того, как вы называете это из другой подпрограммы - вы должны отправить в форме. Подобно:

Sub testYourTest()
    Dim sh As Shape
    Set sh = ActivePresentation.Slides(4).Shapes(1)
    test sh
End Sub

Ты не можешь бежать test автономный, потому что он ожидает, что вы отправите в Shape объект. Но видя как твой oShape объект не используется в вашем test рутина, вы можете также удалить его.

Другие вопросы по тегам