200419449 玖、發明說明 【發明所屬之技術領域】 記錄系 被記錄 統,使 多種語 的。例 電腦終 統其電 腦裝置 電腦裝 電腦, 置亦可 流形, 包括像 這些裝 幕上。 的作業 本發明大體上係關於在一電腦環境中之巨集 統。更特定地,本發明係關於一種用與巨集最終將 之電腦語言無關的語法來產生巨集指令的方法及系 得該巨集可在無需重新產生該巨集之下被處理成為 言的原始碼。 【先前技術】 電腦裝置在工藝界是習知的且是備被廣泛使用 如,電腦裝置的形式可以是一個人電腦,是一具有 端存取之中央化的電腦端機,或是一分布廣泛的系 腦裝置都連接至一網路,如網際網路。雖然某些電 可以很少甚或沒有人為的干預下來作業,但更多的 置是需要人為的輸入方能作業。電腦裝置,如個然 典型地具有一鍵盤來輸入數字及文字資訊。 依據該電腦裝置所實施的工作種類,該電腦裝 具有其它種類的輸入。例如。隨著圖形使用者界面的 圖像輸入裝置的使用已大量的增加。圖形輸入裝置 是一電腦滑鼠,圖形輸入板,數位化器,及光筆。 置遠許圖形元件,如游標,被移動並置放在一電腦螢 此圖形元件可被用來選取功能性指令用來指導電腦 或可輔助資訊的輸入。 上述的電腦滑鼠是最流行圖形輸入裝置之一。滑鼠連 3 200419449 接至該 將滑鼠 腦裝置 指令並 電 接受來 自數位 一區域 電腦資 當 動用以 相同的 作包括 定的操 字地輸 要來完 使用者 僅是耗 操作可 巨 鼠。及 指令之 重播。 有巨集 電腦裝置且被用來選取指令及輸入 移動橫跨一表面,該滑鼠的相對運 ,藉以移動該游標。在滑鼠上的按 藉由將由置放游標來輸入圖形資訊 腦裝置亦可根據在該電腦裝置上作 自於使用者之其它形式的輸入,包 相機的輸入,來自數位攝影機的輸 網路或一廣域網路的連接而耦合至 源的輸入。 在一電腦裝置上操作時,使用者可 指導該電腦裝置的作業。許多時候 輸入序列來實施一特定的作。實施 來自於一或多個輸入裝置的數個輸 作會需要一滑鼠動用以啟動一程式 入存取密碼。一鍵盤,滑鼠及其它 成該重複性的操作。每次使用者想 都怂需使用相同的輸入裝置經歷相 費時間,而且還可能出錯。在某些 用—巨集來加以簡化。 集被用來來一特定的應用中將重;i 其他輸入自動化。通常,巨集典型 田案一但巨集被產生之後,其即 例如,許多軟體應用程式(s〇ftware '己綠播放的功&。在這些軟體應用 圖形資訊。藉由 動被通信至該電 鍵可存取及啟動 〇 業的應用程式而 括聲音輸入,來 入,來自於經由 該電腦裝置之其 與該輸入裝置互 該電腦裝置需要 此組重複性的操 入。例如,一特 ,然後用鍵盤文 輸入通常會被需 要實施此操作’ 同的程序。這不 情形中,重複性 复性的鍵盤,滑 地為包含重複的 可被該電腦裝置 application)都具 程式中,使用者 200419449 可記錄一巨集用以實施一特定的操作或操作系列並給該巨 集一個名稱。之後,該操作或操作系列可藉由執行該名稱 的巨集來實施,藉以為使用者節省重複操作該巨集中所有 步驟的時間及工作。為了要執行該巨集,該軟體應用程式 典型地具有一巨集播放功能,其可由指令或經由一使用者 的捷徑指令來啟動。 藉由目前的巨集記錄技術,只能夠用一種語言,Visual Basic Application (VBA),來記錄一巨集。然而,有許多 程式語言可被用來記錄及執行巨集。又,使用者偏好用他 們根據其個人的喜好,技巧,及熟練程度而所選擇的語言 來記錄巨集。為了要用除了 VBA以外的語言來記錄巨集, 一應用的開發者即必需為了每一種語言來重寫該巨集記錄 器。此一處理不僅是昂貴及耗時的,而且益出錯並導致以 不同語言記錄的巨集之間的行為會不一致。提供一種以多 語言來記錄一巨集的方法及系統可讓使用者及應用開發者 節省時間及金錢。 【發明内容】 本文所揭示的方法及系統可提供一以無關於電腦語言 的語法來記錄一電腦巨集的機構,藉以讓軟體應用程式能 夠只記錄指令一次,然後將指令轉換為多種電腦語言中的 任何一種語言的原始碼。因此,本發明的一種態樣為讓想 要以一或多種不同的電腦語言來記錄一巨集的使用者能夠 藉由啟動在一電腦系統中的記錄系統即可開始該巨集的記 200419449 錄。該記錄系統典型地包含一位在一巨集記錄引擎中的巨 集記錄器。巨集記錄器及巨集記錄引擎兩者都可位在該電 腦系統上的一軟體應用程式之内。 使用者然後可藉由實施一或多個動作來繼續,這些動 作是使用者想要記錄在電腦系統上的動作。這些動作典型 地是在一位於該電腦系統上的軟體應用程式上實施的。這 些動作可包括該使用者與該軟體應用程式互動時所發生的 一連串的命令或鍵盤按鍵。這些動作典型地被軟體應用程 式轉變為一系列被該指令列所呼叫的的指令,該指令列具 有一無關於電腦語言的語法。該指令列典型地代表一電腦 可讀取之被使用者所實施且被該記錄系統所記錄之動作的 解譯。該等指令之無關於電腦語言的語法可讓這些指令一 但被產生之後即可被轉成一或多種不同的電腦語言的原始 碼。無關於電腦語言的語法並不只是反映該軟體應用程式 所使用的電腦語言。 該指令列典型地包含一對一或一對零關係之指令及運 算元。運算元典型地規範將被操作的或操控的資訊。使用 者的動作在一位於該軟體應用程式内的建造者的幫助之下 被該軟體應用程式被轉換為該指令列。該等指令係以一無 關於電腦語言的語法來建構。該指令列一單被完成即可被 送到一或多個處理器並被轉換為一特定電腦語言的原始 碼。因為該指令列是以一無關於電腦語言的語法所寫成 的,所以該指令列可被不同的應用程式的開發者及使用者 根據該開發者及使用者的偏好轉成不同的電腦語言。例 6 200419449 如,使用者A可選擇用語言A來記錄該巨集,而使用者 B可選擇使用語言B來記錄該巨集。如果這兩個使用者記 錄的是相同的動作,則相同的指令列即會被產生,藉由使 用該無關於電腦語言的語法’而該指令列則會被不同的處 理器處理成為語言 A及語言 B。在另一舉例性的實施例 中,使用該無關於電腦語言的語法所產生的指令列可在同 一時間被轉成多種電腦語言,而無需在被送到每一個不同 的處理器之前重新產生該等指令及指令列。 【實施方式】 本發明支援一用來以一物件指令語言(“OIL”)來記錄 一巨集之電腦實施的方法,該 OIL為一無關於電腦語言 的語法。此獨立的語法可被用來以一語言記錄一巨集,然 後以許多不同的程式語言來實施它。該 OIL的獨立語法 藉由將一用特定的語言寫成的巨集的指令步驟轉成一可被 改編為許多語言之萬用的指令組來幫助程式設計師。藉由 使用該 OIL語言,一程式設計師將不再需要用不同的語 言來重新產生同一巨集。本發明可藉由參照附圖來更容易 地瞭解。 雖然本發明的舉例性實施例將以一軟體模組及在一個 人電腦上跑的一作業系統為例加以說明,但熟悉此技藝者 將可暸解到本發明亦可與其它程式模組一起被實施在其它 種類的電腦上。又,熟悉此技藝者亦可解到本發明可於一 孤立的電腦環境或一四散分布的電腦環境中被實施。在一 200419449 散布的電腦環境中,程式模組可實體上位在不同的本地 遠端的記憶儲存裝置上。這些程式模組的執行可以孤立 方式本地地發生或以客戶/伺服器方式遠端地發生。這 散布式的電腦環境的例子包括一辦公室,企業規模的電 、、罔路的區域網路或是全球網際網路。 以下的詳細說明大體上是以傳統電腦構件,如處理 疋’記憶儲存裝置,顯示裝置及輸入裝置,上的處理及 作的符號性代表來呈現。這些處理及操作可運用在一散 式的電腦環境中的電腦構件,如遠端檔案伺服器,遠端 腦伺服器’及遠端記憶儲存裝置。一處理單元可透過一 ^網路來存取這些傳統的散布式電腦構件中的每一者。 由該電腦所實施的處理及操作包括由處理單元或遠 司服器所實施的訊號調及這些資料在 於一或多個本地或遠端記憶儲存裝置上的資料結構中之 遵。此等資料結構對儲存在一記憶儲存裝置内的資料收 强制施以一實體的組織並代表特定的電子或磁性元件。 些符號式的代表為熟悉電腦程式及電腦結構者所使用的 構’用以最有效率地將教導及發現傳達給熟習此技藝者 本發明包括一電腦程式其可體現本文中所描述真以 圖中流程圖(或邏輯圖)所顯示的功能。然而,應被暸解 疋’有許多不同的方式來以電腦程式的方式來實施本 明,且本發明不應被侷限在任一組電腦指令上。又,一 練的程式設計師都能夠根據流成圖及相關的說明毫無困 地寫出此一電腦程式來實施本文所揭示的發明。因此, 及 的 些 腦 單 操 布 電 通 端 位 維 集 這 機 〇 附 的 發 熟 難 對 8 200419449 於適當地瞭 式碼指令組 穎的功能將 中被更詳細 解如何做出 被認為是不 在下面參照 地解釋。 及使用本發 必要的。本 了示出程式 明而言揭示 案所請之電 流程的附圖 一特定的程 腦程式的新 的詳細說明 現參照圖式,其中相同的標號代表各圖中相同的元 件,本發明的態樣及實施本發明的一舉例性的操作環境將 參照圖式加以說明。 第1A圖為一方塊圖,其顯示用來實施本發明的不同 實施例的一舉例性作業環境丨。熟習此技藝者將可瞭解到 第1 A圖及其相關的說明是要提供電腦硬體及程式模組的 一舉例性實施例的一簡短的,一般性的說明,及額外的資 訊可很谷易地從適當的程式手冊,使用者說明書及類似的 出版品中獲得。 示於第1 A圖中之的舉例性操作環境1包括一 一般用 途的電腦裝置,其可以是一傳統的個人電腦1 〇的形式。 如第1A圖所示的,個人電腦10是在一具有一連接至一 遠端伺服器1 1 0之邏輯連線的網路環境中操作的。介於個 人電腦10與遠端伺服器110之間的邏輯連線是由一區域 網路1 2及一廣域網路1 3來代表。熟習此技藝者將可瞭解 的是,在此客戶/伺服器架構中,該遠端祠服器11 0可如 一檔案伺服器或電腦伺服器般地作用。 個人電腦10包括一處理單元14 ’如一由設在美國加 州Santa Clara市的Intel公司所製造”PENTIUM”微處理 器。個人電腦1 0亦包括系統記憶體1 5 ’其包含唯讀記憶 200419449 體(ROM)16及隨機存取記憶體(RAM)17,其經由一系統匯 流排1 8連接至該處理器14。電腦10的一舉例性實施例 利用一儲存在ROM16中的基本輸入/輸出系統(BI〇S)19。 熟習此技藝者可瞭解到BIΟ S 1 9是一組可幫助資訊傳輸於 個人電腦1 0的元件之間的常式。熟習此技藝者亦可暸解 到本發明可被實施在具有其它架構的電腦上,如沒有使用 BIOS19的電腦上,及使用其它微處理器來作為處理單元 1 4的電腦上。 在該個人電腦1 0中,一本地硬碟機20經由一硬碟機 界面2 1連接至系統匯流排1 8。一被用來讀或寫一軟碟片 23的軟碟機22經由一軟碟機界面24連接至系統匯流棑 18。一被用來讀一 CD-ROM或DVD碟片26之CD-ROM 或DVD25經由一 CD-ROM或DVD界面27連接至系統匯 流排1 8。 使用者使用輸入裝置,如一鍵盤28及/或指向裝置, 如一滑鼠29,來輸入命令及資訊到個人電腦1 〇中,其中 該輸入裝置係經由一串接埠3 0而連接至系統匯流排1 8。 其它的指向裝置(未示於第1A圖中)包括軌跡墊,軌跡球, 數位化筆,頭循跡器,資料手套,及其它適合將一游標置 放在一監視器105上的指向器。監視器1〇5或其它種類的 顯示裝置經由一視訊配接器3 2連接至該系統匯流排1 $。 如第1 A圖所示,數個程式模組可被儲存在r〇m丨6, RAM17,硬碟2卜軟碟片23,或CD-R0M/DVD碟片26上, 如作業系統3 6,一應用程式模組丨丨7,一瀏纜器程式模組 10 200419449 3 7 ’及一文件稃式 3 8。程式模組包括可實施特殊工作或 操作特殊的摘要資料種類的常式(routine),物件,構件, 資料結構等等。 在此網路環境中的遠端伺服器Π 〇被連接至一遠端記 憶體儲存裝置33。此遠端記憶體儲存裝置33典型地為一 大容量裝置,如,硬碟機,CD-ROM或DVD,磁-對-光裝 置或類此者。熟習此技藝者將可瞭解,程式模組,如一應 用程式模組1 1 7,藉由電腦可讀取的媒體而被提供給該遠 端伺服器1 1 〇。個人電腦1 〇係經由網路界面34而連接至 遠端伺服器1 1 〇,該網路界面是用來透過一局部區域網路 (LAN)12進行通信。 在某些實施例中’個人電腦10亦經由數據機35而連 接至該遠端伺服器110,該數據機被用來透過一廣域網路 (WAN)13,如網際網路,進行通信。數據機35係經由串 接埠界面3 0而被連接至系統匯流排1 8。數據機3 5亦可 連接至公共電話網路(PSTN)或社區天線電視(c AT V)網 路。雖然第1A圖所示的是在個人電腦丨〇的外部,但熟 習此技藝者可暸解到,數據機3 5亦可安裝在個人電腦i 〇 的内部,因此可直接透過系統匯流排18通信。透過LAN12 及WAN1 3連接至遠端伺服器1 1並不是一定必要的,這 只是提供介於個人電腦i 〇與遠端伺服器丨丨之間一通信路 徑的一個例子而已。 熟習此技藝者將可瞭解到,程式模組,如作業系統 36,應用軟體模組117,瀏纜器程式模組37,及文件程式 11 200419449 H矸經由電腦可讀取的媒體诂妲糾M , 38 J 林被扼供給個人電腦10。在 換作緣境1的舉例性貫施例中,兮雨評-Γ、* ΤΓ 珠作参 落包恥可謂取的媒體包括 士 A <遠端記憶體儲存裝置,並"T A 1 1 本地或退 衣直其可包括本地的硬碟機20, 軟碟片 23,或 CD-R0M/DVD 碟片 26 , R〇Mi6 , RAM17, 及遠端記憶儲存裝置33。在個人電腦1〇的某些舉例性實 施例中,本地硬碟機20被用來儲存資料及程式。 雖然個人電腦1 0及操作環境i的其它元件沒有被示 出,但熟習此技藝者將可瞭解到,這些構件及它們之間的 連結是習知的。因此,對於熟習此技藝者而言,有關個人 電腦1 〇及操作環境1的元件的額外細節即無需在此作進 一步的說明。 參照第1B圖,一方塊圖被示出,其顯示一依據本發 明的一舉例性實施例建構之用來以一物件指令語言 (OIL) 100記錄巨集之巨集建造及記錄系統。該舉例性巨 集建造及記錄系統1 〇 0包含一使用者界面1 0 5,一伺服器 110,一資料庫115,及一應用軟體117。該應用程式117 包含一巨集程式館 120 , 一 Visual Studio for
Application(VSA)子系統 125,及/或一 Visual Basic for Application!; VBA)子系統1 3 0。該巨集程式館1 2 0包含處 理器135及一巨集記錄器引擎140。該巨集記錄器引擎140 包含一記錄器145,一建造器150,一指令列155,一驗 證器160,及一變數地圖165。該VSA子系統125包含一 VSA記錄器175。該VBA子系統130包含一 VBA記錄器 170 〇 12 200419449 使用者界面1 〇 5係經由一電腦網路而可通信地連接至 該伺服器1 1 0。該使用者界面1 0 5提供一用來與該伺服器 1 1 0,資料庫 1 1 5,及應用程式 11 7相通信的機構給該使 用者。例如,使用者界面1 0 5可將包括資料及要求在内之 資訊經由伺服器1 1 0傳送給應用程式11 7及資料庫11 5。 使用者界面 1 〇 5可經由伺服器1 1 0接收來自於應用程式 1 1 7及資料庫1 1 5的資訊。在一舉例性的實施例中,使用 者界面105為一個人電腦。 伺服器1 1 0係經由一電腦網路而連接至該使用者界面 1 0 5及資料庫1 1 5。伺服器1 1 0典型地代表一回應來自一 使用者界面1 〇 5的命令的電腦或程式。 資料庫1 1 5係經由一電腦網路而連接至該伺服器11 0 及應用程式1 1 7。資料庫11 5包含與軟體應用程式程式, 語言處理器,及巨集記錄器相關的資訊。在一舉例性的實 施例中,資料庫115為一結構化的要求語言(SQL)伺服器 資料庫。 應用程式1 1 7為一被設計來幫助使用者實施一特定的 工作,其包括文字處理,會計或庫存管理等,的軟體應用 程式程式。 巨集程式館1 2 0為一動態連結程式館。在一舉例性的 實施例中,巨集程式館1 20是被包含在應用程式1 1 7内, 但巨集程式館1 20亦可獨立於該應用程式11 7之外,使得 巨集程式館可被多個應用程式117存取。處理器135包含 多種碼處理器中的一或多個,如一 C + +處理器,一 C#處 13 200419449 理器,一 VBA 處理器,及一 Visual Basic.Net(VB.Net)處 理器。處理器1 3 5典型地將接收自巨集記錄器引擎1 40的 指令轉成特定語言的原始碼。 記錄器145,建造器150’指令列155,驗證器160, 及變數地圖165典型地為構件物件模式的構件。在 一舉例性的實施例中,記錄器145,建造器丨5 〇,指令列 155,驗證器160,及變數地圖165是位在應用程式n7 中。然而’在另一舉例性的實施例中,這些C 〇 μ構件可 位在獨立於應用程式117之外處,使得有多個應用程式117 可存取一單一的建造器15〇。建造器15〇代表一程式,其 將在使用者界面1〇5處因使用者的動作而被產生的巨集記 錄並储存起來。該建造器150可產生一空的指令列155, 可接收來自於記錄#145的資訊,可使用無關於語法的語 言來建造-指令,可將該指令送至驗證器16〇及變數地圖 1 65用以確保適當的指今έ士接 、膝染 曰7〜構,及可將該指令加至該指令 列1 5 5。叱錄器1 4 5然後可將 從扭人 將孩4曰令列1 5 5送至處理器 1 3 5,用以將才曰令列1 5 5轉 〜、 ^ , d 得成特疋語言的原始碼。 指令列 為成對的指令## 該指令的格式,運算元可以::運算元的名單’其中依據 一舉例性的實施例中,浐人疋曰令中的一非必要部分。在 1 子曰令歹丨I 入 的指令及運算元。—但指令力匕Q 一對一或一對零的關係 一組以無關於電腦語言的嗜=15 5被芫成,其典型地包含 指令列i55被記錄器°145 ^所窝成的指令。該被完成的 斷在指令列155中的指令處理器135。驗證器160判 7疋、包含正確的運算元數量及種 14 200419449 類。例如,印證器1 6 0可確保處理器丨3 5在從接收到的指 令列1 5 5產生原始碼上不會有問題。變數地圖1 6 5可接收 來自於建造器1 50的指令,將變數的名稱及種類儲存在指 令内’確保使用者不會償試用相同的名稱,不同的種類來 產生一變數,並將此指令送回到建造者150。 該VSA子系統125為一包含了一 Vsa記錄器175的 動態連接程式館。該VSA記錄器175典型地接收來自於 一 VSA處理器135的巨集原始碼並將該原始碼存在該vs A 應用程式117中,該應用程式與產生該巨集的文件相關。 該VBA子系統130為一包含了 vba記錄器17〇的動 態連接程式館。該V B A記錄器1 7 0典型地接收來自於一 V B A處理器1 3 5的巨集原始碼並將該原始碼存在該v B A 應用程式1 1 7中,該應用程式與產生該巨集的文件相關。 在一舉例性的實施例中,系統1 0 0的意圖是要產生一指令 列155,其以一處理堆疊(processing stack)為目標,在該 處每一指令都具有正確之相應的運算元種類及數目。 第2圖為一統一的模型化語言(UML)圖,其顯示一依 據本發明的一舉例性實施例使用一無關於電腦語言的語法 所產生的指令列的内部結構。現參照第1B及2圖,該舉 例性的指令列2 0 0包含位在建造器1 5 0的指令列1 5 5中的 指令205及運算元250。指令205包含callvert210,ldloc 215,stloc 220,ldc」4 225,ldc__r8 230,ldstr 235,pop 240, 及註解245。運算元250包含變數255,方法260,及文 字265。菱形207及指定〇··1 252典型地代表〇或1運算 15 200419449 元250被與指令歹j 155中的每一指令相關連在一起。 k數25 5是運算元25〇的一種且典型地被界定為一被 命名的儲存&置其能夠包含可在矛呈式執行期心皮改變的資 料方法260是運算元250的一種且被界定為被當一物件 接收到一訊息時會被實施的處理。文字265為運算元25〇 的種且被界定為一用在一應用程視117中數值,其被表 不成其自身,而不是被表示成一變數的值或一表述的結 果例如,數孚25’,,字母,,a”,及字串,,hello,,都是文字 2 6 5的例子。 指令callvirt 210代表呼叫一虛擬方法。callvirt 21〇 將方法260 &作其運算元25〇。caiivirt 2丨〇亦需要任何與 該方法260相關連的引數(argument)都已被放在一處理堆 上。處理堆疊於指令列丨5 5的處理期間被使用,該處理堆 疊的大小會隨著指令列丨5 5被處理而變大或變下。在一舉 例性的實施例中,在指令列155中的某些指令將元件置於 處理堆疊上,某些指令則將元件從該處理堆疊上取走,及 某些指令則不會動到該處理堆疊。caiivirt 210然後會將 該處理堆疊上引數用掉並執行方法26〇。如果方法26〇有 回送任何東西的話,則callvirt 210將被回送的資訊回到 該處理堆疊上。Ldloc 215代表載入一本地變數的動作, 其會採用被Ldloc 215指令引用的變數255並將變數255 堆到該處理堆疊上以供其它東西使用,如另一儲存的操作 或呼叫所使用。Stloc 220代表儲存一本地的變數的動作, 其會採用在該處理堆疊上的一個數值並將其指定給一變數 16 200419449 25 5 ° Ldc_ 上並採用 令205及 8,及 12 數值載入 採用一文 串載入到 2 5 0 〇 Pop 該 Ρ ο p名 的運算元 當作一書主 將其改成 熟習 令只是包 的語法來 第3· 腦語言之 實施的處 1圖的舉 的語法來 現參 處開始並 1 〇 5開啟 i 4 2 2 5代表將一個四位元整數載入到該處理堆疊 一文字265作為其對應的運算元。例如,如果指 lcd_i4 225被用到的話,則其必需採用包括4, i内的數字。Ldc_r8 230代表將一個八位元的雙 到該處理堆疊上。與led」4 225相同地’ 1 dc r8 字2 65作為其對應的運算元。Ldstr 23 5將一字 該堆疊上並採用一文字265作為其對應的運算元 240並沒有採用一對應的運算元,相反地,在 丨令2 4 0被發出時,將位在該處理堆疊的頂端上 250丟棄。註解指令245採用一文字265並將其 解中的字串般送出。處理器135可改變該字串並 對於該語言的適當格式。 此技藝者將可瞭解到,指令列200中被示出的指 括算術及邏輯指令在内之可使用於關於電腦語言 處理之所有可能的指令組中的一小的子組。 ’5圖為邏輯流程圖,其顯示由一用來以一無關電 浯法來記綠一巨集之舉例性的方法所完成之電腦 理。第3圖為一邏輯流程圖3〇〇,用來顯示在第 句性巨集兕錄系統1 0 0中,用一無關於電腦語言 5己錄一巨集之舉例性處理的一般步驟。 "、、第1 B及3圖,該舉例性方法3〇〇於開始步驟 月J進至步驟3 〇 5,使用者在該步驟由使用者界面 應用^式117。使用者界面1〇5典型地代表客 17 200419449 戶可經由伺服器1 1 〇及資料庫1 1 5存取該應用程式的地 方。使用者典型地藉由選取在該使用者界面105的監視器 上的一相應於該應用程式117的圖像(icon)來開啟該應用 程式。 在步驟3 1 〇使用者開始記錄一巨集。在一舉例性的實 施例中’使用者藉由選取在該應用程式117中的一下拉式 框中的,,記錄巨集,,來開始記錄一巨集。然後會出現一對話 框’使得使用者可對該將被記錄的巨集取名稱,選擇要將 該巨集5己錄於資料庫115中的何處並提供該巨集一簡短的 描述,如產生此巨集的目的或該巨集的功能。當使用者完 成對該巨集的描述之後,使用者可關閉該對話框且應用程 式11 7開始記錄該巨集。 3冗綠的動作且該 在步驟3 1 5中,使用者實 程式117在步驟32〇實施該可記錄的動作。一可記錄的動 作為使用者在該應用程< 117中所作的住何動作,包括-按鍵的按壓’從該應用程式117的一特定區域選取資料, 或-數學的決定。在步驟325中,一查詢被實施用以判斷 被使用者所實施的該可記錄的動作是否將被記錄。如果不 =施即,,否,’分又’則前往步驟365,在該步驟另一查 ^貫施用以判斷使用者是否實施了另—可記錄的動作。 =〇。孩動作將被記錄的話,即”是”的分又,則前網步驟 % π驟3 3 0中 R隹、 、心餅—指令列155 巨集#錄器引擎14Gt。指令列155典型地包含一連 18 200419449 指 輪 法 令 於 何 用 用 理 夠 的 對 語 言 及 碼 器 庫 用 處 令’其描繪出以一無關於電腦語言的語法窝成的巨集的 行及等4”為该使用者之被以一無關於電腦語言的鋅 記錄的動作的解讀。在步驟335中,應用程式"7將;; 列155送至巨集記錄器引擎140。該巨集記錄器引擎二 步驟345中將該指令列155送至一或多個處理器135。 時將指令Η 155送至-或多個處理# 135典型地是由應 程式11 7來決定的。例如,當使用者完成一個將會產生 行對應的原始碼的動作時,該應用程式117將會把由使 者的動作所產生的該指令列155送至該處理器135。處 器135可位在該應用程式U7的内部 產生多種電腦語言,如……,及vb二 碼的處理器135。巨集記錄器145可在步驟345中將單 指令列155送給一或多個處理器135,用以根據使用者 該巨集的用途及使用者的語言偏好來產生一或多種特定 言的原始碼、 在步驟3 5 0 ’處理器將指令列! 5 5從該無關於電腦語 的阳法轉成特足?吾吕的原始碼,如C + +,C# , VBA, VB.Net。在步驟3 5 5,處理器135該特定語言的原始 送到該巨集記錄器引擎140。在步驟36〇’該巨集記錄 引擎"0將該特定語言原始碼儲存在一適當的位置。在 舉例性的實施例中’儲存原始碼的適當位置包括該資料 115’該VSA子系統125,該VBa子系統ι3〇或該應 程式117。例如,記錄器145可將指令列155送至一 vba 理器I35用以將指令列155處理成乂8八碼。當被處理 19 200419449 後,誃VBA螞被送至該巨集記 該VBA碼送至位在VB子手'口 “〇,其接著將 于糸统13〇 在/舉例性的實施例中,應用程式u A :己錄器1 70。 並經由使用者界面1〇5將選 ,疋項適當的位置 根據被提供的選項來決定使广使用者然後 器150將指令列155刪除。在=置。在步驟361’建造 將建造器15〇刪除。 步驟362中,應用程式117 在步騾365,—杏令姑眘# 該應用程式U7中實=被:施用以判斷使用者是否已在 則走,,是,,的分支前m,6己錄的動作。如果是的話, t錄 至步跟325用以決定該動作是否將被 果使用U有實施另—可記錄的動作的話,則走” 否的分支前進至步辨。^ 在應用程式117中的動作^步驟370,使用者同止記錄 勺動作使用者可藉由從顯示在使用者 界面105的監視器上之該應用程式"7中的一下拉式框中 選取”停止記錄巨集”來停止記錄—巨集。該巨集現在是以 一特定語言碼窝成iL可被使用者存取。方法錢在結 束步驟終止。 第4圖為一邏輯流程圖,其顯示由第3圖的步驟 所完成的一舉例性之電腦實施的方法,用來以一無關於電 腦居吕的語法建構一指令列H 5 5。參照第1B , 3及4圖, 使用者在步驟405中在應用程式117實施一可記錄的動作 來開始該方法330。在步驟410,應用程式117產生一建 造器150於該巨集記錄器引擎ι4〇中。該建造器ι5〇典型 地是為在應用程式1 1 7中被記錄的每一動作而被產生。然 2〇 200419449 而,在另一舉例性的實施例中,建造器丨5 〇可在前一 列1 5 5被處理器1 3 5處理過之後用—空白的指令列來 重設,藉以省略掉為每一被記錄的使用者動作產生一 建造器1 50。 在步驟415,建造器150產生一空的指令列155 數地圖165及驗證器160於該巨集記錄器引擎14〇中 令列155,變數地圖165及驗證器160典型地是為在 程式11 7中被記錄的每一動作而被產生。然而,在另 例性的實施例中,指令列1 5 5,變數地圖1 6 5及驗證器 可在指令列1 5 5被處理器1 3 5處理過之後被重設且指 1 5 5被清空,藉以省略掉為每一被記錄的使用者動作 一新的指令列1 5 5,變數地圖1 6 5及驗證器1 6 0。 在步驟4 2 0,應用程式1 1 7將被記錄的使用者動 一部分轉譯為具有一無關於電腦語言的語法之指令。 驟425 ’當有需要時,該建造器150將來自於該指令 訊加至該變數地圖1 6 5。如果該指令包含一在稍早的 中沒有被用到的變數的話,則資訊將從建造器1 5 〇被 變數地圖1 6 5。 在步驟445 , 一查詢被實施用以判斷建造器150 使用驗邊器1 6 0來決定目前的指令相對於指令列1 5 5 前内容而言是否被適當地建構。如果是的話,則走,,力 分支則進至步騾460,建造器150在該步驟使用驗證器 來判斷該指令在該指令列1 5 5的内容之下是否有意義 處理然後前進至步驟470。如果建造器150沒有使用 指令 加以 新的 ,變 。指 應用 一舉 160 令列 產生 作的 在步 的資 指令 加至 是否 的目 的 160 。該 驗證 21 200419449 器1 6 0來決定目前的指令相對於指令列1 5 5的目前 言是否被適當地建構的話,則走”否”的分支到 470。在步驟470,建造器150將指令加至該指令歹· 在步驟4 7 5,一查詢被實施用以判斷該指令列 否已完成。如果不是的話,則走”否”的分支前進 4 2 0,該應用程式 1 1 7在該步驟會將另一部分的始 作轉譯為具有一無關於電腦語言的語法的指令。如 令力155已完成的話,則走”是”的分支到達第3圖 3 3 5。 第5圖為一邏輯流程圖,其顯示一可讓驗證器 斷一指令是否如第4圖的步驟4 5 0所完成的一般被 產生之舉例性的電腦實施的方法。參照第1 Β,4及 該方法450是在該驗證器160接收一來自於該建 的指令的步驟5 1 0處開始的。在步驟5 1 5,一查詢 用以判斷被該驗證器1 60接收到的該指令是否包含 運算元種類及數目。如果不是的話,則走”否”的分 至步驟520,指令列155的產生在該步驟會失敗且 會終止。如果該指令包含正確的運算元種類及數目 則走”是”分支到達第4圖的步騾45 5。 結論,本發明讓使用者及開發者能夠以許多不 式設計語言來產生並使用巨集。藉由使用 OIL的 語言的語法,一巨集可用一語言來產生且在用其它 不必分別地被產生。該OIL語言將原來的巨集的 換為一組中立的指令其可被轉換成許多不同的語言 内容而 達步驟 I 155 〇 155是 至步驟 用者動 果該指 的步驟 160判 適當地 5圖, 器150 被實施 正確的 支前進 該處理 的話, 同的程 無關於 語言時 指令轉 22 200419449 將會被解的是,本發明 明滿足了本文中提到的先前祜π 的需求並達成了上述的目沾 ^元刖技術 — 、。雖然本發明的數個舉例松沾 貫施例被顯示及描述,彳曰粗 丨生的 1一對於熟習此技藝者而士彳 是,在不偏離由以下的申迷 口 月*、、、員的 本發明的精神與範圍之下,_ 物所界疋< 這些實施例可以有許冬 變化及修改。例如,本發明 午多不冋的 ^万法可被應用丨 被典型地描述為巨集之電腦π、, 彳逐超過那些 〈弘知可讀取的指令上。 【圖式簡單說明】 為了要更為完整地瞭解本發明及本發 的說明需參照附圖來閱讀,其中· 勺優點,以下 第1Α圖為一方输闰 4 鬼圖,其顯示用來眚说士# 實施例的一舉例性作業環境· 發明的不同 第1Β圖為一用來以一物 曰♦己錄巨I # 建造及記錄系統的方塊圖,其 筇巨集 < 巨集 疋很據本發明的一〜 施例建構的; 舉例性貫 第2圖為一統一的模型化語言圖,一、 明的一舉例性實施例使用物件指人i丄八.、”/不一依據本發 .結構; ” ^所建構的指令列的 第3圖為一流程圖,其顯示依據 施例用-物件指令語言來記錄 :月的-舉例性實 第 已杲的處理; v 土网 六网不依據本發昍认 k 施例用一物件指令語言來產生—巨 、一 +例性 第5圖為-流程圖,其顯示依據=令列的處理·, 據本發明的-舉例性實 t 4圖為一流程圖,其顯示依據本發 一物件指令語言來產生—巨# : +例性實 23 200419449 施例之用來驗證以一物件指令語言所寫成的一指令的適當 結構的處理。 【元件代表符號簡單說明】 10 個人電腦 12 區域網路 13 廣域網路 14 處理單元 15 系統記憶體 16 唯讀記憶體(ROM) 17 隨機存取記憶體(RAM) 18 系統會流排 19 基本輸入/輸出系統(BIOS) 20 硬碟機 21 硬碟機界面 22 軟碟機 23 軟碟片 24 軟碟機界面 25 CD-ROM/DVD 26 CD-ROM/DVD 碟片 27 CD-ROM/DVD 界面 28 键盤 29 滑鼠 30 串接埠界面 32 視訊配接器 33 遠端記憶體儲存裝置 34 網路界面 35 數據機 36 作業系統 37 瀏纜器程式模組 38 文件程式 110 遠端伺服器 117 應用程式模組 100 巨集建造及記錄系統 105 使用者界面 110 伺服器 115 資料庫 120 巨集程式管 125 VSA子系統 130 VBA子系統 135 處理器 140 巨集記錄器引擎 145 記錄器 24 200419449 150 建造器 155 指令列 160 驗證器 165 變數地圖 170 VBA記錄器 175 V S A記錄器 200 指令列 205 指令 250 運算元 245 註解 255 變數 260 方法 265 文字 207 菱形