2010-08-03 110 views
4

如何在Microsoft Excel中实现“记录宏”?据我所知,我可以嵌入一个脚本解释器(例如javascript),并使C++对象对脚本可见,类似于Web浏览器中的DOM。如何实现类似于Microsoft Excel的“记录宏”功能?

我的问题是你如何记录用户操作,然后生成相应的JavaScript代码?在Excel中,我们可以记录一个宏,它会生成适当的VBA代码。

有人知道如何在C++或其他语言中实现此功能吗? PS:可以是任何语言/平台 - 我只是想知道如何做到这一点。

+1

什么语言?平台?什么样的应用程序?看看想法的纪念图案。 – Oded 2010-08-03 10:22:57

回答

1

一种方法是为每个菜单项/按钮点击设置双重事件处理程序。

随着标准事件处理程序的启动,您的辅助宏观构建器事件将触发。 随着宏观事件构建者的激发,您可以记录执行的操作列表,例如

ActiveDocument->Save. 
ActiveDocument->SaveAs. 
ActiveDocument->Print. 
Find (AllDocument,"ThisText").SelectFirst 
Edit.Cut 
Find().SelectNext 

然后,您可以将这些操作转换为您所需的脚本语言。

希望这会有所帮助。

0

看一看Command Pattern。程序中的每个动作都可以用Command对象表示。所以当你录制一个宏时,你既执行该命令并将其存储在一个列表中。当您想要播放宏时,只需遍历您创建的列表,再次执行每条命令。

你甚至不一定需要使用不同的对象,尽管从长远来看它可能会更容易。作为一个例子,Emacs拥有键盘宏,可以简单地记录每个击键,然后在播放宏时模拟这些击键。

相关问题