在程式設計開發過程中,偶爾有通過開發相應程式編輯並生成word的功能,那麼該如何做呢?對於新手來說會是一件很頭疼的事情,在這我教大家一個方便實用簡單的辦法。
工具/原料
office 2003(主要是word,excel也可以適用)
1、開始錄製插入表格巨集
開啟word工具,選擇工具->巨集->Visual Basic 編輯器。
在隨後出現的視窗中,“將巨集儲存在:”下拉框中,選擇文件1(文件)
從常用工具欄中,點選插入表格按鈕,並選擇一個3行3列的表格
在巨集錄製工具欄上,點選停止錄製按鈕
此時,文件中出現了一個3行3列的表格
2、檢視巨集程式碼
選擇工具->巨集->Visual Basic 編輯器
在出現的Visual Basic視窗中,從左邊展開Project(文件1)中的模組,並雙擊NewMacros。
接下來右邊視窗中會彈出相應程式碼
3、VBA程式碼分析
分析vba程式碼
4、VBA程式碼轉換為JavaScript程式碼應該注意的問題
VBA中的常量應該使用數字代替。比如上面以下VBA語句中的
wdWord9TableBehavior以及wdAutoFitFixed。
要得到VBA常量的數字值,可以在Visual Basic編輯器中,隨便輸入一個Sub過程,加入MessageBox 常量即可。比如,要顯示
將游標定位到Msgbox語句所在行,點選工具欄上的執行按鈕
即可得到結果
2)在VBA程式碼中,可以直接訪問Application物件,ActiveDocument物件,以及Selection物件。但是在使用JavaScript對NTKO OFFICE文件控制元件中的Word物件程式設計時,首先是通過控制元件物件.ActiveDocument得到word的Document物件,然後通過Document物件的Application屬性訪問Application物件。然後再通過Application物件得到Selection物件。比如:
var mydoc = ntkoobj.ActiveDocument; //得到Document物件 var app = mydoc.Application; //得到Application物件 var sel = app.Selection; //得到Selection物件
3)VBA函式或者過程呼叫支援命名引數。但是JavaScript呼叫不支援命名引數。因此,應該在Word程式設計幫助中找到相應方法的描述,按照從左到右的順序寫入引數。常量採用數字代替。中間不能有遺漏的引數。但是最後面的可選引數是可以省略的。
注意VBA中的Bool型別的常量True和False,應該替換為Js中的true和false.
注意其它Js和VBA的語法差別。比如,if語句等。以及每行js語句之後需要分號。
5、將VBA程式碼轉換為JavaScript程式碼
按照上述原則,以下VBA語句:
可以遵循以下步驟被轉換為如下JavaScript程式碼: 首先查閱Tables集合的Add方法描述,在Word程式設計參考中對Tables物件的Add方法的描述如下:
而通過第6節,第1)步所描述的方法,可以得到wdWord9TableBehavior=1,wdAutoFitFixed=0 有了這些資訊,就可以得到如下Js程式碼:
注意事項
在Word 2003中,由於安全性問題,預設情況下巨集是被禁用的,不能被執行。
有巨集的文件在開啟的時候會有安全性提示,導致使用者感覺不友好。