AI 之前,做一份「可以填的表單」要走哪條路?VBA / Access / LibreOffice / PDF 的四種選擇
一個很常見的需求
單位要辦活動,主管說:「做一份表單,讓每位志工填個資、勾服務項目、選時段。」
聽起來很簡單。但接下來你就會遇到:
- 表單要在電腦上填還是印出來用手寫?
- 填完之後資料要自動進到一個檔案,還是有人事後統一登打?
- 誰負責維護這份表單?改欄位是誰的工作?
這幾個問題,決定了你會走上哪一條路。而在 AI 進到日常工作以前,能真正做到「螢幕上填、按一下存下來、之後整理得動」的方案,說多不多——大概就四條。
四條路的大方向
在往下細看前,先給你一個總覽:
| 方案 | 什麼時候用 | 誰做得動 |
|---|---|---|
| Excel + VBA 表單 | 只有 Office、需要客製、單機用 | 會一點程式、願意查 VBA 語法的人 |
| Access 表單 | 資料量會累積、需要多張表關聯 | 願意學資料庫概念的人 |
| LibreOffice Base 表單 | 沒有 Office 授權、預算低 | 願意接受介面粗糙、資源較少的人 |
| 可填寫 PDF 表單 | 對外發放、對方電腦環境不受控 | 有 Adobe Acrobat(Pro)的人 |
底下一條一條走。
一、Excel + VBA:最多人選、最容易踩坑
大部分單位一開始的想法都是:「就用 Excel 啊,多方便。」
具體做法通常是:
- 在第一頁(Sheet1) 放一份表單畫面:用表單控制項(下拉選單、核取方塊、按鈕)擺出輸入區
- 寫一段 VBA,讓「儲存」按鈕把第一頁的答案寫到第二頁(Sheet2) 累積成一張資料表
- 存完之後清空第一頁,等下一位填
概念上完全合理,也的確可以做到。
這條路真正的痛點
① 一次只能一個人填
Excel 檔存在共用資料夾,兩個人同時開?後開的那個只能唯讀。VBA 寫回時如果另一個人也在改,會直接錯誤跳出。
② VBA 要維護
欄位加一欄,程式碼就要改一段。程式碼寫在 Excel 檔裡,換一台電腦要重新設定信任、開啟巨集——「巨集警告」對非技術使用者是勸退符號。
③ 資料驗證靠自己寫
Excel 有「資料驗證」功能,但複雜的驗證(例如身分證檢查、電話格式)要自己寫程式。錯了就存進去了,事後再修。
④ 好用的表單控制項在「開發人員」索引標籤裡
預設是關的。要先打開 → 選項 → 自訂功能區 → 勾「開發人員」——這一步就會讓一半的使用者放棄。
二、Access:資料庫的正解,但沒人想學
Microsoft Access 是專門為這件事設計的:資料表、表單、報表、查詢,四件事一次到位。
用 Access 做表單很直覺:
- 建一張資料表定義欄位(姓名、電話、性別、服務項目…)
- 用「表單設計工具」拉一個表單,欄位自動綁到資料表
- 存進去的每一筆自動累積到資料表
- 要看報表?內建報表產生器可以直接印
Access 的優勢
- 多人同時填:把 accdb 放共用資料夾,多個表單同時開沒問題(Access 內部會處理鎖)
- 資料表關聯:一張「志工基本資料」+ 一張「服務紀錄」,透過志工編號串起來
- 報表功能強:不用另外拉 Excel,內建就能出制式報表
Access 的痛點
① 學習曲線陡
「資料表」、「查詢」、「關聯」、「主鍵」——這些概念沒接觸過的話,光是搞懂「為什麼要有主鍵」就要花一天。
② Access 授權
Microsoft 365 訂閱不是每個版本都內含 Access。企業版才有,個人的 Family / Personal 沒有。買單機版一次授權也不便宜。
③ 資料庫檔會壞
accdb 檔案有時候會莫名損壞——尤其是斷網、突然停電、多人同時寫時。內建有「修復」功能但不是每次都救得回來。備份必須是常態。
④ 只在 Windows 上跑
Mac 使用者要跑 Access 要開虛擬機或 Parallels,等於直接放棄一半的協作對象。
三、LibreOffice Base:省錢的替代方案
沒有 Access 授權,又想走資料庫這條路?LibreOffice Base 是免費的替代方案。
概念跟 Access 幾乎一樣:資料表 → 表單 → 查詢 → 報表。介面長得也很像(早期版本幾乎是 Access 的複製版)。
適合的場景
- 單位預算緊、不想付 Microsoft 授權
- 願意接受介面比較粗糙、字型顯示比較怪
- 資料規模不大(一兩千筆內)
別忘了的痛點
① 中文顯示常有問題
表單中的中文欄位標籤,在某些系統/字型設定下會亂碼或字距怪異。花心思調字型是常態。
② 教學資源比 Access 少很多
遇到問題 Google,出來的答案八成是英文論壇;解法常是「其實這個功能沒完全實作」。
③ 表單設計工具比 Access 難用
拉欄位的手感差、按鈕綁事件更複雜。對非工程人員,這個難度差距是真實存在的。
④ 跟 Access 一樣:檔案會壞、備份要做
四、可填寫 PDF:對外發放的最後手段
前面三種都是「單位內部用」。如果要發給外部單位、外部志工填呢?他們沒有你的 Excel、沒有 Access、沒有 LibreOffice——PDF 是最保守的共通格式。
可填寫 PDF 是這樣做的:
- 用 Adobe Acrobat Pro 打開一張 PDF(可以是 Word 匯出的、也可以是掃描的)
- 按「準備表單」,Acrobat 會自動偵測欄位(下劃線、方框都會被辨識成輸入格)
- 手動微調欄位型別(單行、多行、勾選、單選、下拉)
- 存檔,寄出去——對方用 Adobe Reader(免費)就能填
這條路的優勢
- 對方不用裝任何東西:Adobe Reader 是內建
- 樣式可控:印出來就是那個樣子,跟公文格式一致
- 不必連網:填完存檔用 email 寄回來、或印出來簽名
這條路的痛點
① Adobe Acrobat Pro 是要付錢的
單月授權大約 US$15–20。而且只有 Pro 版能編輯,Reader 只能填。
② 資料要「回收」不是自動的
對方填完寄回來,你得一份一份打開、按「匯出資料」,再合併 CSV。發 30 份回收 30 個檔,整理一次也要一兩個小時。
③ 欄位驗證只有基本款
Acrobat 內建的 JavaScript 可以做驗證,但寫起來很痛苦(它用的是 Adobe 特化的 JS 環境,跟一般前端不一樣)。
④ 填的當下沒有「存下來就進資料庫」的感覺
它本質上是「一份填了的 PDF」——資料流的下一步永遠是有人開檔案、匯出、整理。跟 Excel/Access 的差別很清楚。
這四條路,共通的痛點
不管走哪一條,都會碰到這幾件事:
- 欄位變一次,好幾個地方都要改(表單畫面、儲存邏輯、報表版型)
- 只有做這件事的人懂:三個月後接手的同事看不懂你的 VBA、看不懂你的 accdb 結構
- 多人協作卡卡:Excel 一次一個人、Access 有時鎖死、PDF 要人工回收
- 跨裝置就完了:手機/平板上填?很勉強
- 學一次要好幾天,還未必學得動
這也是為什麼——很多單位到最後還是走回「印出來給大家手寫、我事後打字」 這條路。
為什麼今天有更好的選擇
上面四條路的共通假設:「做表單」是一件需要專業工具的事。
- VBA 假設你會 Basic
- Access 假設你懂資料庫
- LibreOffice Base 假設你能吃苦
- Acrobat 假設你付得起授權、且能接受手動回收
這個假設,在 AI 進到日常工作以後不成立了。
現在做一份表單的路徑可以是:
描述你要什麼 → AI 幫你寫程式 → 貼上去執行 → 表單就在瀏覽器上跑起來
用什麼工具寫程式?R Shiny 是我最常用的一個。它有幾個特點剛好對上前面說的痛點:
- 在瀏覽器上跑——手機、平板、任何裝置都能填
- 資料直接進資料表——不用 VBA、不用「開檔案匯出」
- 改欄位改一段程式碼——不用同時改三個地方
- 免費、跨平台(R 是 open source)
- AI 幫你寫——你不用學 Shiny 的所有 API
下一篇會走一遍:用 R Shiny + AI,20 分鐘寫出一份能實際用的表單。
如果你單位裡正在做這個決定——「表單到底要用哪一條路做」——歡迎透過 About 頁面聊。選錯路,後面三年都在填坑;選對路,一次到位。