分類
❄網站新玩意 (New Stuffs) 業界觀察 雜記

Microsoft 365 Office 增益集(Add-ins)開發工具的未來趨勢分析

印象裡應該是從 Office 2000 版本開始,就運用 VBA 在 Excel 軟體裡面,開發所謂的增益集(Add-in)。悠悠忽忽 20 多年過去了,對於 VBA 開發者而言,「轉型」已是必然的趨勢。尤其在這個網路時代,Office 365 也推出網頁版App,以適應雲端和跨平台的使用環境,因此 Office Add-ins 的開發環境也在悄悄地轉轉型當中。

Visual Basic for Applications(VBA)是 Visual Basic 的一種巨集語言,主要能用來擴展 Windows 的應用程式功能,特別是應用在Microsoft Office 軟體的增益集(Add-in)上面。但微軟公司在 2020 年宣佈不會再繼續開發 Visual Basic 或增加新功能,等於是宣告它的生命終點。只是二十幾年來,有太多的企業使用了 VB、VBA 開發內部軟體工具,必須把它繼續保留在 Windows 環境裡,在短期內仍有它存在的價值,不能/不敢說停就停。

確實 VBA 是缺乏「面向未來」在雲端環境和跨平台的潛力。它先天欠缺跨平台性,僅限於 Office 桌面版(Windows 和 Mac),無法在 Office 網頁版或行動裝置上執行。再者,它有安全性的顧慮,許多企業基於網路安全考量會限制或禁用 VBA 巨集

想要取而代之的後起之秀,目前有 Office Script、Python in Excel 及 Office JavaScript。Office Script 與 Office JavaScript 都是採用TypeScript / JavaScript 作為開發語言。

Office Script 是基於雲端環境,使用 JavaScript 的現代自動化工具。它可以透過 Power Automate(Microsoft 的自動化流程工具)進行排程、觸發事件,並與其他 Microsoft 365 服務甚至外部服務整合,實現更高階的自動化。

目前它僅支援 Excel Online 網頁版,而且主要是在商業或教育版的 Microsoft 365 授權下使用。微軟曾經表達過將 Office Scripts 擴展到 Word 和 PowerPoint 的意圖,但目前尚未有明確的公開時間表。而且,Office Scripts 自 2019 年發佈後,長期停留在 Excel Online,這表明微軟內部可能已經重新評估了其優先級和定位。許多開發者和 IT 專業人員,都抱持「Office Scripts 只是過渡產品」的看法。

Python in Excel 允許在 Excel 中直接使用 Python 及其豐富的函式庫(如 Pandas, NumPy 等),進行高階的資料清理、轉換、統計分析、機器學習和視覺化,這是 VBA 和 Office Scripts 難以比擬的。Python 是世界上最流行的程式設計語言之一,擁有活躍的社群和豐富的資源。

它的優勢為具有強大的資料分析能力,主要設計重點是資料科學和分析,對於操作 Excel 本身的 UI 或觸發事件的能力,可能不如 VBA 和 Office Scripts。 雖然 Python 程式碼寫在 Excel 中,但實際執行環是在 Microsoft 雲端裡面,然後將結果傳回 Excel 工作表的儲存格。

前面介紹的 Office Script、Python in Excel,目前都僅支援 Excel 的網頁版本,不能夠在 Office 桌面版執行,無法建立自訂的使用者介面 (UI)。這解決了 VBA 最大的痛點。

唯獨 Office Add-ins 使用 Office JavaScript API(office.js),可以在 Windows、Mac、iPad 上的 Office 桌面版以及網頁版上運作,這解決了 VBA 最大的痛點。並支援全套 Office 應用程式 Word, Excel, PowerPoint, Outlook, Project ,還能與其他 Web 服務無縫整合,以及支援自訂 UI(工作窗格、對話方塊及加掛於選單)等。它是微軟積極推動的現代增益集開發標準,才是接替 VBA 成為專業級增益集(Add-in)的最佳方法。

這套 Office JavaScript API 的原始碼和文件大部分都放在 GitHub 上的 OfficeDev 組織下,是開放且免費供所有人使用的,不需要付費或註冊就能開始學習和使用這些 API。它將是公司《資訊系統大升級》新藍圖(能支援 JavaScript)之一,正在評估和測試採用 Office Add-ins 逐步轉移或新增 Office 的增益集(Add-in) App。

分享