我正在尝试确定如何使用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方法无法正常工作。有什么想法吗?
答案 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