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編輯器
插入→模組→把上面的程式碼貼上
回到Excel文件→選要設定的的欄→工具→巨集→欄寬→執行→輸入欄寬值即可

8 則留言:

享紅塵 提到...

您好~~
感謝您 的 "用公分為單位設定Excel中欄寬及列高"文章 讓我有所啟發
因為我很多東西 因為這文章受益
希望我也能再次將我所懂的 也分享給大家
希望 在我的blog 也能引用您的設定

大雄 提到...

您好:
也是十分感感謝您分享這個文章
小弟深深的受惠到!
抱著感恩的心情向您道謝
謝謝您

Jenny 提到...

謝謝你
這篇文章幫了我很大很大的忙!!!!

竹荷 提到...

請問巨集是每次開EXCEL都要重新設定嗎?
我是用2007的版本
依照您的方法設定好巨集並使用該功能之後
隔天再次打開該檔案點選巨集時發現前一天設定的巨集不見了
所以是想問說這個巨集沒有辦法讓她每次開EXCEL都執行嗎?

Unknown 提到...

您好!感謝您的分享~太好用了!謝謝哦!

台灣黑熊 提到...

太久沒有營經自己的部落格了,都不知道有人留言,回答的問題,excel巨集碼預設存放是放在自己那個檔案內,所以新開的檔或別的檔案都是使用不到的...
如何共用巨集?
1.可以先隨便錄個巨集→注意要選將巨集存放在:個人巨集活頁簿
2.進入VisualBasic編輯器的時會發現你錄的巨集放在VBA Project(PERSONAL.XLS)的模組內
3.寫在這個模組的程式碼就是共同的了

簡于茜 提到...

太好用了~
感謝你~

imdavid0126 提到...

謝謝您無私的分享!這個vba真的讓我受益良多!!!
非常感謝!!!