如何在Microsoft Excel中实现“记录宏”?据我所知,我可以嵌入一个脚本解释器(例如javascript),并使C++对象对脚本可见,类似于Web浏览器中的DOM。如何实现类似于Microsoft Excel的“记录宏”功能?
我的问题是你如何记录用户操作,然后生成相应的JavaScript代码?在Excel中,我们可以记录一个宏,它会生成适当的VBA代码。
有人知道如何在C++或其他语言中实现此功能吗? PS:可以是任何语言/平台 - 我只是想知道如何做到这一点。
如何在Microsoft Excel中实现“记录宏”?据我所知,我可以嵌入一个脚本解释器(例如javascript),并使C++对象对脚本可见,类似于Web浏览器中的DOM。如何实现类似于Microsoft Excel的“记录宏”功能?
我的问题是你如何记录用户操作,然后生成相应的JavaScript代码?在Excel中,我们可以记录一个宏,它会生成适当的VBA代码。
有人知道如何在C++或其他语言中实现此功能吗? PS:可以是任何语言/平台 - 我只是想知道如何做到这一点。
一种方法是为每个菜单项/按钮点击设置双重事件处理程序。
随着标准事件处理程序的启动,您的辅助宏观构建器事件将触发。 随着宏观事件构建者的激发,您可以记录执行的操作列表,例如
ActiveDocument->Save.
ActiveDocument->SaveAs.
ActiveDocument->Print.
Find (AllDocument,"ThisText").SelectFirst
Edit.Cut
Find().SelectNext
然后,您可以将这些操作转换为您所需的脚本语言。
希望这会有所帮助。
看一看Command Pattern。程序中的每个动作都可以用Command对象表示。所以当你录制一个宏时,你既执行该命令并将其存储在一个列表中。当您想要播放宏时,只需遍历您创建的列表,再次执行每条命令。
你甚至不一定需要使用不同的对象,尽管从长远来看它可能会更容易。作为一个例子,Emacs拥有键盘宏,可以简单地记录每个击键,然后在播放宏时模拟这些击键。
什么语言?平台?什么样的应用程序?看看想法的纪念图案。 – Oded 2010-08-03 10:22:57