1

我正在尝试使用 VBA 为 PowerPoint 开发一个小宏。然而,“开发环境”绝对是一场噩梦!

最糟糕的是:似乎没有真正好的方法来生成调试输出!我读到 Debug.Print 输出应该进入即时窗口,但那里什么也没有出现!所以我目前正在使用 MsgBox 来生成调试消息。:-(

真正糟糕的是,宏中的错误总是会导致 PPT 崩溃。因此,必须等待,直到它消失,然后必须再次重新启动它并摆脱所有恢复尝试。这总是需要很长时间!

如果我设置 On Error Resume Next 它不会崩溃 - 至少不会那么频繁 - 但是事情只是默默地不起作用,我看不出是什么以及为什么会出错(除非我用 MsgBox 调用粘贴代码,但这需要在每次执行期间点击 100'000 次)。

在调试器中运行代码并单步执行代码也不起作用,因为我的宏引用了当前的“ActivePresentation”,除非启动幻灯片模式,否则它似乎不存在。所以这个调试让我发疯了!

这真的是开发 VBA 代码的唯一可能性或环境吗?至少有一些想法。调试输出,有人吗?

M。

4

1 回答 1

-1

最糟糕的是:似乎没有真正好的方法来生成调试输出!我读到 Debug.Print 输出应该进入即时窗口,但那里什么也没有出现!

冒着听起来侮辱的风险(我不打算这样做!)您是否打开了立即窗口?在 IDE 中,按 Ctrl+G 以查看是否出现任何新内容。如果是这样,那就是立即窗口。

真正糟糕的是,宏中的错误总是会导致 PPT 崩溃。

不是通常,没有。当然,它可能会以这种方式发生。您的代码可能会触发 PPT 中的错误。天知道,我在 PPT 2002 和 2007 中遇到了足够多的问题。如果您正在使用合理的错误处理并且仍然遇到导致 PPT 崩溃的错误,那么在代码运行时单步执行应该至少可以让您将其范围缩小到导致崩溃的一两行。

在调试器中运行代码并单步执行代码也不起作用,因为我的宏引用了当前的“ActivePresentation”,除非启动幻灯片模式,否则它似乎不存在。

再次,不。ActivePresentation 指的是应用程序中具有焦点的任何演示文稿,无论是幻灯片放映还是任何其他视图。如果您的代码在一个演示文稿中并且它应该作用于另一个演示文稿,这可能会导致一些混乱,但您只需要切换到普通视图,确保您想要访问的演示文稿是可见的(我会确保不要有几个视图)然后 Alt+F11 返回 IDE 并运行您的代码。

所有这些建议都适用于任何 Windows 版本的 PPT,回到 Office 97(Mac?认为不同。如果您使用的是 Mac,请提及。有一些差异,但在大多数情况下,以上所有内容都适用,除了Alt+F11)。

如果这些似乎都对您的设置没有帮助,那么可能是时候修复 Office。

于 2013-02-01T16:59:33.467 回答