Unicode 符号
Unicode 符号在实际工作中有着广泛的应用,比如用于制作邮件签名、文章排版、演示文稿制作等等。在 Excel 表格中,插入符号可以让表格的排版更加美观,同时也能够帮助用户更清晰地表达意思。
Dingbats
Dingbats是一个包含装饰符号的Unicode块。大部分字符都来自于Zapf Dingbats,这个块最初被命名为“Zapf Dingbats”,并于1991年10月随版本1.0的发布被添加到Unicode标准中。块名称于1993年6月随版本1.1的发布从“Zapf Dingbats”更改为“Dingbats”。-- 引自维基百科
Dingbats符号表如下图所示。
微软开发的Wingdings字体包含了其中的部分字符。
在工作表中插入Dingbats字符
在单元格中输入时并无法直接插入指定的Unicode编码字符,内置的插入符号功能中并不包含“Dingbats”,因为它并不是一种Windows字体。
示例代码可以快速插入Dingbats符号。
Sub Demo()
Dim objDom as Object
Dim lngChar, c, r
Set objDom = CreateObject("htmlfile")
lngChar = 9984
For c = 1 To 12
For r = 1 To 16
objDom.write "<html><body>&#" & CStr(lngChar) & ";</body></html>"
Cells(r, c).Value = objDom.body.innertext
lngChar = lngChar + 1
objDom.Close
Next r
Next c
Set objDom = Nothing
End Sub
【代码解析】
第4行代码创建HTML文件对象。
第5行代码设置起始字符的编码值,16进制的0x2700,相当于10进制9984。当然也可以在代码中调用工作表函数Hex2Dec
实现进制转换。
第6~13行代码使用双重循环逐个插入符号。
第8行代码将HTML文本写入objDom对象,其中包含一个Unicode字符。如果使用16进制字符,那么应使用&#x
替换&#
。
<\b><html><body>✀</body></html>
**
第9行代码将HTML文件对象的 innertext 属性的值赋值到Excel表格中指定的单元格,此代码实现了Unicode编码到符号的转换。
第10行代码变量lngChar递增。
第11行代码清空HTML文件对象。
第12行代码释放对象变量占用的系统资源。
运行示例代码,工作表中的内容如下图所示。