VBA用户窗体文本框选中文本格式化问题:如何实现加粗等富文本效果
VBA UserForm中实现选中文本加粗的正确方法
你原代码的问题在于:普通的TextBox控件不支持富文本格式,而且SelText只是返回选中的纯文本内容,不是可修改格式的对象,所以直接修改它的Font属性无效。要实现选中文本的局部格式化,必须使用RichTextBox控件,步骤如下:
1. 添加RichTextBox控件到工具箱
- 右键点击VBA编辑器的工具箱 → 选择「附加控件」
- 在弹出的窗口里勾选「Microsoft Rich Textbox Control 6.0」,确定后控件就会出现在工具箱中,把它拖到UserForm上替换原来的TextBox。
2. 编写加粗按钮的代码
替换你的CommandButton点击事件代码为以下内容,这可以实现点击按钮切换选中文本的加粗状态(加粗/取消加粗):
Private Sub CommandButton1_Click() ' 切换选中文本的加粗状态 RichTextBox1.SelBold = Not RichTextBox1.SelBold End Sub
补充说明
- 除了加粗,RichTextBox还支持其他局部格式化:
- 斜体:
RichTextBox1.SelItalic = Not RichTextBox1.SelItalic - 下划线:
RichTextBox1.SelUnderline = Not RichTextBox1.SelUnderline - 设置字体大小:
RichTextBox1.SelFontSize = 12
- 斜体:
- 如果要添加项目符号,需要先选中段落,然后设置
SelBullet属性:
Private Sub CommandButtonBullet_Click() RichTextBox1.SelBullet = Not RichTextBox1.SelBullet End Sub
内容的提问来源于stack exchange,提问作者Meen Sesh
相关产品推荐
相关产品推荐

