通过VBA切换PowerPoint 2010中的黑屏选项时出现问题

通过VBA切换PowerPoint 2010中的黑屏选项时出现问题,vba,powerpoint,Vba,Powerpoint,我正在尝试确定如何使用VBA黑/不黑Powerpoint演示文稿。我修改了在线找到的VBA宏(http://my.safaribooksonline.com/9780470634004/670?bookview=search --“掌握适用于Microsoft Office 2010的VBA;第670页”) 将状态设置为ppSlideShowBlackScreen确实会使屏幕变黑。根据这本书,“要关闭黑屏或白屏并重新开始播放,请将状态属性设置为ppSlideShowRunning” 如果我在PP

我正在尝试确定如何使用VBA黑/不黑Powerpoint演示文稿。我修改了在线找到的VBA宏(http://my.safaribooksonline.com/9780470634004/670?bookview=search --“掌握适用于Microsoft Office 2010的VBA;第670页”)

将状态设置为
ppSlideShowBlackScreen
确实会使屏幕变黑。根据这本书,“要关闭黑屏或白屏并重新开始播放,请将状态属性设置为
ppSlideShowRunning

如果我在PPT 2007中运行这个程序,它会像预期的那样工作——看起来几乎什么都没有发生(我想象屏幕会变黑几秒钟,然后恢复正常)。注释掉第二行确实会显示一个黑屏,这表明这是按预期工作的

但是,如果我在PPT 2010中运行此宏,屏幕将变黑并保持黑色。无论我将状态设置为什么,我都无法使屏幕恢复到其原始状态

  • 我尝试了
    ppSlideShowWhiteScreen
    &它显示了一个完全白色的屏幕,但仅此而已
  • 我也尝试了
    ppslideshowPause
    ,但没有任何效果
如果我使用PPT菜单中的“黑色”屏幕选项,屏幕将变黑&选项将变为“非黑色”屏幕。使用此选项确实会使屏幕恢复正常。此外,使用键盘快捷键(“b”)将在黑色和正常模式之间切换


因此,在PPT 2010中一定有办法做到这一点,但由于某些原因,VBA方法无法正常工作。有什么想法吗?

我认为御宅族是对的——它只是PPT中的一个bug。我也没有在MSDN论坛上听到任何关于这方面的消息,所以我愿意接受。感谢所有看过这个问题的人。

经过多次修改,我发现将“b”键发送到幻灯片窗口是唯一的解决方案

Sub Test1()
    With ActivePresentation.SlideShowWindow.View
        .State = ppSlideShowBlackScreen
        If ppSlideShowDone Then
        .State = ppSlideShowWhiteScreen
        End If
    End With
End Sub
ActivePresentation.SlideShowWindow.Activate
SendKeys "b", False
DoEvents
Application.Activate

在PowerPoint 2010中,它对我来说很有用,先转到下一张幻灯片,再转到上一张幻灯片,然后再返回到“运行”模式


这肯定是PowerPoint 2010中的一个bug。解释一下会让答案更好
ActivePresentation.SlideShowWindow.Activate
SendKeys "b", False
DoEvents
Application.Activate
ActivePresentation.SlideShowWindow.View.State = ppSlideShowBlackScreen

...do some stuff in "invisible" mode,
something like "screenupdating set to false" in excel or word...

'Unblack or unwhite screen
ActivePresentation.SlideShowWindow.View.Next
ActivePresentation.SlideShowWindow.View.Previous
ActivePresentation.SlideShowWindow.View.State = ppSlideShowRunning