天天看點

在表格中顯示形位公差符号

在表格中顯示形位公差符号

    • 需求
    • 效果
    • 自動實作
    • 代碼

需求

有的時候,需要在表格中或是在文檔中顯示機械制圖方面的形位公差符号,實作這些特殊符号的良好顯示并不是一件容易的事,有時使用圖檔插入,操作麻煩,顯示效果不了是很好。下文介紹了如何在表格中實作形位公差符号的顯示,并且可以使用宏代碼來實作輔助輸入。

效果

下面這個圖檔即是顯示的效果,使用了GDT這個字型後,輸入正常的小寫英文字母,即會出現各種形位公差符号。一般來講,安裝AutoCAD後,電腦中都會有這個字型。

在表格中顯示形位公差符号

自動實作

現在有一個問題,就是如何出現A1單元格中的字母(或漢字)與符号同時存在的顯示,并且能夠很友善的得到。下面給出的這一段VBA代碼,就可以實作這個功能。

在表格中輸入下面的代碼,即可以實作輸入字母自動轉符号的功能,隻要字母以“~”開頭,即可以在單元格輸入完成後,自動替換為形位公差符号。代碼第二行的内容即是單元A1的原字元。

實作原理是單元格被修改後,逐個判斷單元格的字元,發現辨別符後,将字型改為GDT,其它的不變,這樣一來可以很友善的輸入,也可以很好的顯示。

代碼

Private Sub Worksheet_Change(ByVal Target As Range)
'a~bc~d~e~f~g12uyt~c
Const flag = "~" '形位公差辨別符,可以自己選擇一個基本不會在文檔内容中使用的字元
Dim po As String
Dim num() As String

On Error GoTo err
Application.EnableEvents = False '停止事件響應
'查找辨別符位置
For i = 1 To Len(Target)
    If Mid(Target, i, 1) = flag Then
        po = po & "," & i '記錄辨別符位置
    End If
Next
Target = Replace(Target, flag, "") '去除辨別符
num = Split(po, ",")
For i = 1 To UBound(num)
    Target.Characters(Start:=num(i) - i + 1, Length:=1).Font.Name = "GDT"  '設定記錄位置字型
Next
err:
Application.EnableEvents = True '恢複事件響應
End Sub
           

表格中還有幾個字型,也可以用來做特殊字元的輸入和顯示,如wingdings、wingdings2、wingdings3,有興趣的人,可以自己試一下,選擇自己常用的字元來使用。

——專注辦公軟體的二次開發及教育訓練,你有問題,我有思路!

——微網誌、微信、CSDN同号:w_dexu。

——轉載請注明出處!

在表格中顯示形位公差符号

掃碼加微信