2010年11月8日 星期一

用公分為單位設定Excel中欄寬及列高


長久以來Excel的欄寬設定一直困擾著我,因為我常常需要直接以公分來設定表格的寬度,卻很難精確換算....
搜遍網路卻沒有滿意的答案,有人認為一個字完寬等於7.5pt,但我發現這樣的換算結果與實際差很多,因此我根據經驗
欄寬
  • Excel欄寬是以能顯示幾個字元為單元,例如:中文版Excel的預設字體大小是12,如果欄寬=6,表示可以顯示6個半形字或者3個全形字的寬度(6÷2)
  • 欄寬1=0.21cm(2.54÷72×6),而實際會再多一點(0.14cm左右),因為Excel會讓儲存格的左右兩邊各留一些距離,如此字才不會和格線粘在一起
  • 所以如果我們設定欄寬為 6,欄的實際寬=6×2.54÷72×6+0.14=1.40公分(0.14是我約略抓的,因為找不到更精確的值,至少誤差不至太大)
  • 公式:n公分寬=72÷(2.54×6)×(n-0.14)
列高
  • 列高相對是比較單純的,高72=2.54cm
  • 公式:h公分高=h×72 ÷2.36

依據以上的原則我寫了簡單的巨集如下:

Sub 欄寬()
a1 = InputBox("請輸入欄寬(公分)")
Selection.ColumnWidth = (a1-0.14) * 72 / (2.54 * 6)
End Sub

Sub 列高()
b1 = InputBox("請輸入列高(公分)")
Selection.RowHeight = b1 * 72 / 2.36
End Sub

工具→巨集→Visual Basic編輯器(或者直接按快速鍵Alt +F11)
插入→模組→把上面的程式碼貼上
回到Excel文件→選要設定的的欄→工具→巨集→欄寬→執行→輸入欄寬值即可