PowerPoint 原生僅支持 RGB 與 HSL 兩種色彩模式,且批量修改顏色需層層點擊「選擇形狀 → 填充 → 其他填充 → 自定義 → 修改數值」,效率極低。市面插件多功能不全,筆者決定自建 Excel 偽插件,利用維基百科公式實現 HSL 轉 RGB 計算,實現一鍵批量出色值。本文完整記錄從公式拆解、值域轉換、Excel 函數構建到驗證修正的全過程,供同路人參考。
Office 單一形狀調色尚可接受,但批量改色時重複操作極其繁瑣。RGB 與 HSL 皆為成熟色彩模型,維基百科提供標準轉換算法,Excel 擅長數據計算,三者結合即可構建輕量轉換工具。

圖1 PPT 原生批量改色流程繁複
給定 HSL 值:h ∈ [0, 360)(色相角度),s, l ∈ [0, 1](飽和度、亮度)。目標求 r, g, b ∈ [0, 1]。
s = 0 時為無彩色(灰階),r = g = b = l。s ≠ 0):
q:l < 0.5 ? q = l × (1 + s) : q = l + s - l × sp = 2l - qhk = h / 360tR = hk + 1/3、tG = hk、tB = hk - 1/3tC 至 [0, 1]:tC < 0 ? +1 : tC > 1 ? -1 : tCtC 區間分段計算 nC(nR, nG, nB):
tC < 1/6:p + (q - p) × 6 × tC1/6 ≤ tC < 1/2:q1/2 ≤ tC < 2/3:p + (q - p) × 6 × (2/3 - tC)tC ≥ 2/3:pRGB = nC × 255
單元格規劃:B3=H、C3=S、D3=L(均為 0-255 整數),F3=R、G3=G、H3=B(輸出 0-255)。

圖2 單元格佈局與初始值
公式要求 h∈[0,360)、s,l∈[0,1],但輸入為 0-255。轉換規則:H' = H(已是角度)、S' = S/255、L' = L/255。切記:H 不除 360,S/L 才除 255,這是筆者初期犯錯最多處。
| 單元格 | 含義 | Excel 公式 |
|---|---|---|
| K3 | q | =IF(D3/255<0.5, D3/255*(1+C3/255), D3/255+C3/255-D3/255*C3/255) |
| K4 | p | =2*D3/255-K3 |
| K5 | hk | =B3/360 |
| K6 | tR | =K5+1/3 |
| K7 | tG | =K5 |
| K8 | tB | =K5-1/3 |
| K9 | tR修正 | =IF(K6<0,K6+1,IF(K6>1,K6-1,K6)) |
| K10 | tG修正 | =IF(K7<0,K7+1,IF(K7>1,K7-1,K7)) |
| K11 | tB修正 | =IF(K8<0,K8+1,IF(K8>1,K8-1,K8)) |





以 nR (K12) 為例,引用修正後的 tR (K9) 並鎖定 p(K4)、q(K3):
=IF(K9<1/6,$K$4+($K$3-$K$4)*6*K9,IF(AND(K9<1/2,K9>=1/6),$K$3,IF(AND(K9<2/3,K9>=1/2),$K$4+($K$3-$K$4)*6*(2/3-K9),$K$4)))*255
向右拖動填充 nG (K13)、nB (K14),引用自動變為 K10、K11。



F3(R) = IF($C3=0,$D$3,K12) G3(G) = IF($C3=0,$D$3,K13) H3(B) = IF($C3=0,$D$3,K14)

測試標準紅 HSL(0, 255, 128) → 應得 RGB(255, 0, 0)。實測中發現 H 值域處理存在邊界問題(H=360 時應歸 0),需在 K5 加入 =MOD(B3,360)/360 修正。另因 Excel 浮點運算精度,極邊界值可能有 ±1 偏差,實際應用可用 ROUND(...,0) 取整。
這個 Excel 工具雖簡陋,卻實實在在解決了批量改色的燃眉之急。無需編程基礎,善用現成公式與表格邏輯,設計師同樣能構建屬於自己的效率武器。文件已開源,歡迎取用優化。