如何在受保護的工作表中對列進行群組與取消群組?
眾所周知,一旦 Excel 工作表受到保護,使用者可執行的操作便會受到多重限制。例如,在受保護的工作表中,切換群組與非群組資料(透過 Excel 的大綱功能展開或摺疊群組)通常預設為停用狀態。當您希望允許特定使用者運用群組功能整理或探索資料,同時又需確保其他內容不受未經授權的變更時,此限制尤為不便。因此,掌握如何在不影響工作表安全性的前提下啟用群組與取消群組功能,對於兼顧資料完整性與可用性至關重要。
使用 VBA 程式碼在受保護的工作表中群組與取消群組列
在保護工作表時無法使用群組與取消群組功能,是許多使用者常見的困擾。解決此問題的可靠方法之一,就是運用 VBA 程式碼,在維持工作表保護的同時,以程式方式啟用大綱功能。若您熟悉巨集操作,或您的組織政策允許使用 VBA 程式碼,這將是理想選擇。但請注意:此方法需搭配啟用巨集的工作簿().xlsm),若您的環境已停用巨集,或您希望避免開啟檔案時出現安全性提示,則不建議採用此方案。
1. 先啟用您要使用群組與取消群組功能的工作表。請確保該工作表目前未受保護—若已受保護,此方法將無法套用。如有必要,請先透過「審閱」>「解除保護工作表」指令解除保護。
2. 接著按下 ALT + F11,即可開啟 Microsoft Visual Basic for Applications 編輯器!
3. 在 VBA 編輯器中,點選「插入」>「模組」,並將下列程式碼貼到新開啟的模組視窗中。務必精確貼上程式碼,才能確保順利執行!
VBA 程式碼:在受保護的工作表中群組與取消群組列
Sub EnableOutlining()
'Updateby Extendoffice
Dim xWs As Worksheet
Set xWs = Application.ActiveSheet
Dim xPws As String
xPws = Application.InputBox("Password:", xTitleId, "", Type:=2)
xWs.Protect Password:=xPws, Userinterfaceonly:=True
xWs.EnableOutlining = True
End Sub
這段程式碼可在啟用工作表保護的同時,允許您展開與摺疊已群組的列或欄。執行時,系統會提示您設定保護密碼——請務必牢記此密碼,因為日後若要解除工作表保護,將需要輸入此密碼。一旦遺忘密碼,若無進階復原方法,可能將無法解鎖工作表。
4. 按下 F5 執行程式碼,系統將提示您設定工作表保護密碼。輸入您想要的密碼後,點選「確定」即可完成設定!請參閱下方截圖:

5. 輸入密碼後,按一下「確定」。現在,您的工作表已受保護,但您和其他使用者仍可透過工作表左側的加號與減號分級顯示符號,輕鬆展開與摺疊群組,如下方截圖所示:

提示與注意事項:
- 若工作表已受保護,程式碼將無法執行—請務必先解除保護。
- 以 VBA 為基礎的保護在進階情境中表現出色,但不適用於限制巨集執行的環境,或不熟悉 VBA 的使用者。
- 每次分享啟用巨集的工作簿時,請提醒收件人務必啟用巨集,以確保所有功能正常運作。
優點:此方法可靈活自動化保護流程,並自訂允許的操作。
限制:需啟用巨集;但基於安全性考量,並非所有使用者或組織皆允許使用 VBA。
若您在執行巨集後遇到錯誤,或群組功能未如預期運作,請再次確認以下事項:
- 在執行巨集前,工作表已解除保護。
- 已在保護前透過「資料」>「群組」建立分級顯示符號(加號/減號)。
- 您已在提示時正確輸入密碼,或可嘗試使用較簡單的密碼進行疑難排解。
- 您的 Excel 巨集設定已允許執行 VBA。