通过VBA切换PowerPoint 2010中的黑屏选项时出现问题
我正在尝试确定如何使用VBA黑/不黑Powerpoint演示文稿。我修改了在线找到的VBA宏(http://my.safaribooksonline.com/9780470634004/670?bookview=search --“掌握适用于Microsoft Office 2010的VBA;第670页”) 将状态设置为通过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
ppSlideShowBlackScreen
确实会使屏幕变黑。根据这本书,“要关闭黑屏或白屏并重新开始播放,请将状态属性设置为ppSlideShowRunning
”
如果我在PPT 2007中运行这个程序,它会像预期的那样工作——看起来几乎什么都没有发生(我想象屏幕会变黑几秒钟,然后恢复正常)。注释掉第二行确实会显示一个黑屏,这表明这是按预期工作的
但是,如果我在PPT 2010中运行此宏,屏幕将变黑并保持黑色。无论我将状态设置为什么,我都无法使屏幕恢复到其原始状态
- 我尝试了
&它显示了一个完全白色的屏幕,但仅此而已ppSlideShowWhiteScreen
- 我也尝试了
,但没有任何效果ppslideshowPause
因此,在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