ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 5369|回复: 11

[讨论]如何用代码实现在批注中使用不同的字体?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2004-1-11 10:55 | 显示全部楼层 |阅读模式
本帖已被收录到知识树中,索引项:Range对象
我编了一个英语四级词汇测试的程序,我想在一个单元格中加入单词音标的批注。单词音标只能设置为"Kingsoft Phonetic Plain"字体,如果用手工方式加入批注,可以任意设置批注的字体。但不知如何用何代码来设置批注的字体?因为有一批单词需要完成此工作,不可能用手工一个一个加入批注。 谢谢!

点评

知识树内容索引:11楼  发表于 2013-9-28 20:34

TA的精华主题

TA的得分主题

 楼主| 发表于 2004-1-11 19:29 | 显示全部楼层
我自己顶,真的没有高手知道吗?

TA的精华主题

TA的得分主题

发表于 2004-1-11 20:28 | 显示全部楼层
Sub ModifyNotes() '批量改批注。
Dim cmt As comment
For Each cmt In ActiveSheet.Comments
With cmt.Shape
With .TextFrame.Characters.Font
.Name = "隶书"
.Size = 10
.ColorIndex = 11
End With
.Fill.ForeColor.SchemeColor = 15
.Line.ForeColor.SchemeColor = 12
'其他的属性输入.号后可以看到。结合帮助文件或录制宏自己视情况添加
End With
Next cmt
End Sub 请参考以下的11帖: http://www.officefans.net/cdb/viewthread.php?tid=16402&highlight=comment

TA的精华主题

TA的得分主题

 楼主| 发表于 2004-1-11 21:06 | 显示全部楼层
首先感谢大头版主和EdgeOfCity的赐教。 但是我的问题比较特别,我希望在同一个批注中使用两种不同的字体。 因为对批注中既要包括单词的音标(Kingsoft Phonetic Plain),也要包括单词的解释(宋体),如下图所示,不知是否可以实现?(手工方式可以)

[讨论]如何用代码实现在批注中使用不同的字体?

[讨论]如何用代码实现在批注中使用不同的字体?

TA的精华主题

TA的得分主题

发表于 2004-1-11 21:22 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
你批注是已经写好了,再改字体,还是用程序加入的?

TA的精华主题

TA的得分主题

发表于 2004-1-11 21:33 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
应该可通过Comment.Shape.TextFrame.Characters(start,length)来分别设置不同字体。关键在于获得length。不知可否用instr或者什么函数获得chr(10)的位置。 就可对此位置前和此位置后的文字分别设置字体。 我对instr函数不熟悉,不知道是否可得出位置(或者有别的函数?),而且我这里没有VBA帮助。你自己查帮助试试看,或等高手出招。
[此贴子已经被作者于2004-1-11 21:34:27编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2004-1-11 21:39 | 显示全部楼层
我的批注是用程序加入的,字体是用的是默认字体,因为音标显示不正确,所以再手工将音标的字体改为:Kingsoft Phonetic Plain。 我试过如果手工加入批注的话:可以在输入时先选择不同字体,再输入字符。 也可以在批注输入后,对不同的字符设置不同的字体。

TA的精华主题

TA的得分主题

 楼主| 发表于 2004-1-11 22:27 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
问题已解决,谢谢各位大侠!!

TA的精华主题

TA的得分主题

发表于 2004-1-11 22:07 | 显示全部楼层
EdgeOfCity的回答得非常正确,其实也不一定非要检查chr(13)位置的,观察楼主的批注,完全可以用/来划分的。 ...... ' 假定对d5单元格的批注进行操作 Dim i As Integer
With Range("D5")
i = VBA.InStr(2, .Comment.Text, "/", vbTextCompare)
.Comment.Shape.TextFrame.Characters(1, i, vbTextCompare).Font.Name = "Kingsoft Phonetic Plain"
.Comment.Shape.TextFrame.Characters(i + 1, VBA.Len(.Comment.Text) - i).Font.Name = "宋体"
End With

TA的精华主题

TA的得分主题

发表于 2004-1-11 20:26 | 显示全部楼层
Range("A1").Comment.Shape.TextFrame.Characters.Font.name = ",,,,,,," Range("A1").Comment.Shape.TextFrame.Characters.Font.Size = 20
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-4 03:19 , Processed in 0.053104 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表