如何在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