通过VBA在PowerPoint 2010中切换黑屏选项的问题

时间:2010-10-04 16:17:58

标签: powerpoint powerpoint-vba

我正在尝试确定如何使用VBA黑白/取消黑名单。我修改了我在网上找到的VBA宏(http://my.safaribooksonline.com/9780470634004/670?bookview=search - “掌握VBA for Microsoft Office 2010;第670页”)

Sub Test1()
    With ActivePresentation.SlideShowWindow.View
        .State = ppSlideShowBlackScreen
        .State = ppSlideShowRunning
    End With
End Sub

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

如果我在PPT 2007中运行它,它会按预期工作 - 它几乎看起来没有任何反应(我想这个屏幕会在几分之一秒内变黑并且然后恢复正常)。注释掉第二行确实显示黑屏,表明这是按预期工作的。

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

  • 我试过ppSlideShowWhiteScreen&它显示了一个完全白色的屏幕,但就是这样。
  • 我也尝试了ppSlideShowPaused,但它没有做任何事情

如果我使用PPT菜单中的“黑色”屏幕选项,则屏幕变为黑色&该选项更改为“Unblack”屏幕。使用此功能可将屏幕恢复正常。此外,使用键盘快捷键(“b”)将在黑色和&之间切换。正常模式。

因此,必须有一种方法可以在PPT 2010中执行此操作,但由于某种原因,VBA方法无法正常工作。有什么想法吗?

4 个答案:

答案 0 :(得分:2)

Sub Test1()
    With ActivePresentation.SlideShowWindow.View
        .State = ppSlideShowBlackScreen
        If ppSlideShowDone Then
        .State = ppSlideShowWhiteScreen
        End If
    End With
End Sub

答案 1 :(得分:1)

经过多次摆弄后,我发现将'b'键发送到SlideShowWindow是唯一的解决方案。

ActivePresentation.SlideShowWindow.Activate
SendKeys "b", False
DoEvents
Application.Activate

答案 2 :(得分:0)

我认为Otaku是对的 - 这只是PPT中的一个错误。我也没有在MSDN论坛上听到任何有关此事的消息,所以我愿意接受。感谢所有看过这个问题的人。

答案 3 :(得分:0)

在PowerPoint 2010中,它适用于我接下来的上一张幻灯片,然后返回“运行”模式。

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