利用 Copilot 輔助開發 Word 自動化填入

使用情境:

平常助理有很多重複的行政表格需要填寫,有沒有辦法降低工作量?

(以下個資是 AI 生成的虛構資料)

初步想法:

以前在演講看過用 AI 在 Excel 產生大量範例可以填入 Word 制式化表格
撇除 AI 的部分,我們知道可以用 Excel 可以大量填入 Word 表格

尋找最合適的解決方案:

AI 給出三種方法:

  1. Word 郵件 合併列印功能
  2. Word 巨集
  3. Python 腳本

Python 腳本的問題是需要先建立 Python 環境,考量到一般使用者不會想要用指令來跑程式,所以先不考慮。

合併列印功能需要在 Excel 先做好每一筆的內容,但考慮到每次填入的內容其實都有點不一樣,所以需要手動複製貼上相關資訊這件事情並沒有解決。

Excel 可以根據某欄位的資料去尋找對應的相關資料,就像資料庫一樣。

分析需要填入的資料發現一些可以建表的欄位:

  1. 人員相關資料:姓名(索引)、身份證、工作單位、職稱
  2. 計畫相關資料:計畫名稱(索引)、計畫編號、會計編號

但是如果要在 Excel 先做好每一條的資料,再用合併列印功能輸出到 Word 上好像沒有這麼直觀。

找到 Word 開發者模式可以在文件中插入互動元件,例如:下拉式選單與勾選框,會讓 Word 用起來像網頁介面一樣。

這邊發現 Mac 的 office 功能比較少 ,Windows 的功能更齊全一點。

要用到互動式元件就得用 VB 寫巨集,這裡就拿出 ChatGPT 幫忙生成。

開發:

一開始小功能能夠產生出合適的程式碼,不過一開始是沒辦法執行的,後來問問 google 得知是中文編碼 Big5 問題。

可以執行以後一開始是蠻順利的,詢問 AI 後將程式碼原封不動貼上去就可以執行,但慢慢發現程式碼開始長歪,不是很好閱讀。

程式越來越長的時候, ChatGPT 會開始省略程式碼 (?!) ,因為生成的程式碼本身就很難閱讀了,省略了幾行也很難用人工比對出來,如果把之前的 AI 對話都清掉的話,那就真的救不回來了。

再次開發:

很不幸的,一開始沒有預期這個專案程式碼會變很複雜,所以並沒有做版本控制只能重新來過,另外也對巨集的編輯視窗感到很頭痛,轉用 VSCode 來寫會比較舒服。

既然都用 VSCode 就來試試 Copilot,發現整合性比單純從 ChatGPT 複製貼上好很多,他也會把目前視窗顯示範圍或是反白範圍的程式碼一併送給模型,就不用自己手動貼入。

這次改用另一個思維方式來開發,就是要檢查並糾正每次 Copilot 生成的程式碼,Copilot 會傾向給出寫死參數名稱的版本,但我們要讓他可以通用就要引導他有哪些參數是會變的,最後還要叫他把功能抽出來變成函式可以重複利用。

程式優化部分 AI 並沒有辦法給出一個好的答案,我問他程式速度很慢怎麼辦,他給出來的答案並沒什麼用。最後還是要靠人工判斷發現他一直重複開關 excel 造成效能瓶頸,正確提出問題後就能夠幫忙解決。

以下是成品展示:

後記:

前面技術評估跟規劃大概斷斷續續花了一個禮拜,實際操作 ChatGPT 開發跟 Copilot 開發大概都各只用了一天。

整個體驗下來,覺得 AI 真的是對於有開發經驗的人幫助很多,像是不用自己幫變數取名稱,不用自己寫註解,不用自己了解很細節的語法等。

但對於完全沒有開發經驗的人,得先有個人帶入門把開發環境建立起來,也需要知道一些實際開發的流程才能夠上手。

現階段軟體工程師還不會完全被 AI 取代,最難的其實是一開始的分析使用情境、尋找並評估每個技術的可行性、制定開發的方向與功能,而最後的功能細節實作才會交給 AI 來處理。

工具演進也是從 純文字編輯器 -> 整合開發環境(自動補完、語法檢查等) -> AI 生成(提供功能實作)

所以現在學程式需要的硬底子越來越少了,更多的是要能夠理解真實問題並找到可行的技術來解決,就像公司的技術主管一樣。


發表迴響