2010-08-03 70 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擁有鍵盤宏,可以簡單地記錄每個擊鍵,然後在播放宏時模擬這些擊鍵。

相關問題