关于powerpoint vba的怪异bug

时间:2010-06-05 14:05:42

标签: vba powerpoint 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

它不起作用(没有错误信息,没有“ok”信息)

1 个答案:

答案 0 :(得分:2)

这将取决于你如何从另一个子例程调用它 - 你必须发送一个形状。像:

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

您无法独立运行test,因为它希望您发送Shape个对象。但是,当您的oShape例程中没有使用test对象时,您也可以删除它。