如何在Microsoft Excel中实现“记录宏”?据我所知,我可以嵌入一个脚本解释器(例如javascript)并使脚本可以看到c ++对象,类似于Web浏览器中的DOM。
我的问题是如何记录用户操作然后生成相应的javascript代码?在Excel中,我们可以记录一个宏,它将生成适当的VBA代码。
有人知道如何用C ++或其他语言实现此功能吗?
PS:可以是任何语言/平台 - 我只是想知道如何做到这一点。
答案 0 :(得分:1)
一种方法是为每个菜单项/按钮点击提供双事件处理程序。
当标准事件处理程序触发时,您的辅助宏构建器事件将触发。 当宏事件构建器触发时,您会记录执行的操作列表 例如
ActiveDocument->Save.
ActiveDocument->SaveAs.
ActiveDocument->Print.
Find (AllDocument,"ThisText").SelectFirst
Edit.Cut
Find().SelectNext
然后,您可以将这些操作转换为所需的脚本语言。
希望这有帮助。
答案 1 :(得分:0)
查看Command Pattern。程序中的每个操作都可以由Command对象表示。因此,当您录制宏时,您都执行命令并将其存储在列表中。当您想要播放宏时,只需运行您创建的列表,再次执行每个命令。
您甚至不一定需要使用不同的对象,但从长远来看它可能会更容易。例如,Emacs有键盘宏,它只记录每次击键,然后在你回放宏时模拟那些击键。