[Word] Microsoft Office Word分别设置英文和中文字体格式的宏代码

本文介绍如何使用宏代码和正则表达式在MicrosoftOffice中分别设置英文和中文字体格式,包括字体颜色和底纹,以及注意事项,如避免中文乱码问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、自定义样式无法分别设置英文和中文字体格式

虽然Microsoft Office有自定义样式的选择,但是暂且做不到分别设置英文和中文字体颜色,以及分别设置底纹颜色。英文和中文的字体颜色是共用的。所以需要编写宏代码,通过正则表达式来分别设置英文和中文的字体格式。

比如说,我想要设置中文:黑色5号宋体;英文:深红色RGB(192,0,0),5号数学体Cambria Math,底纹为淡灰色RGB(237,237,237)。如下图:

但是Microsoft Office的“自定义样式”,只能设置成如下样式。

即便我们进入“格式→字体”进行调整,中英文字体的颜色只能共用一种颜色。“格式→边框→底纹”,底纹也只能共用。

因此我们需要编写宏代码,通过正则表达式来分别设置英文和中文的字体格式。

二、编写分别设置英文和中文字体格式的宏代码

1、进入Word,点击“文件→选项→高级”,取消勾选“中文字体也应用于西文”,点击确定。

2、点击“视图→宏→查看宏”。

① 如果还没有创建过自定义的宏代码,点击创建。

② 如果创建过自定义的宏代码,选择其中一个宏代码,点击编辑。

3、进入VBA界面,点击“插入→过程”,输入子程序名称:Red_Western_Font_Theme,选择公共的。

4、输入以下宏代码

'自定义:中文:5号黑色宋体; 英文+数字+特殊字符:5号红色数字体+底纹灰色
 
Public Sub Red_Western_Font_Theme()
 
    '选中文本变量
    Dim rng As Range
    
    Set rng = Selection.Range
    
    '选中文本先全部清除格式,然后设置为宋体,接着设置为数字体,(只有西文会变数字体),字号5号,黑色字体
    
    Selection.ClearFormatting
    
    With rng.Font
        .Name = "Simsun"       '默认整体宋体,此处使用宋体的英文名称,避免中文乱码
        .Name = "Cambria Math" '西文数学体
        .Size = 10.5           '五号字体
        .Color = RGB(0, 0, 0)  '黑色字体
        .Bold = False          '加粗 无
        .Italic = False        '斜体 无
        .Underline = wdUnderlineNone        '下划线 无
        .UnderlineColor = wdColorBlack      '下划线 黑色
        .EmphasisMark = wdEmphasisMarkNone  '着重号 无
        .StrikeThrough = False              '删除线 无
        .DoubleStrikeThrough = False        '双删除线 无
        .Superscript = False                '字体格式 上标 无
        .Subscript = False                  '字体格式 下标 无
        .SmallCaps = False  '小型大写字母 字母的形状和大写字母相同但尺寸较小
        .AllCaps = False    '全部大写字母 如果为true 字母全部大写
        .Hidden = False     '隐藏 如果设置为true,打印的时候看不到
    
    End With
    
    
    '创建VBA的正则表达式对象
    Dim reg As Object
    Set reg = CreateObject("VBScript.Regexp")
    
    
    
    '正则表达式匹配
    '[]意为包含
    '\w :可以匹配字母、下划线和数字,相当于[a-zA-Z0-9_]
    '一些特殊字符,自行添加即可
    
    With reg
        .Global = True
        .Pattern = "[\w\.\@\%\-\+\\\/\#\^\~\=]"
    End With
    
    
    '遍历选中文本数组中的每一个字符
    Dim i As Integer
    For i = 1 To rng.Words.Count
        If reg.Test(rng.Words(i)) Then '通过reg.Test(String str)匹配字符是否满足正则表达式
            With rng.Words(i)          '对满足条件的字符设置Font Style
                .Font.Color = RGB(192, 0, 0)      '深红色
                .Shading.Texture = wdTextureNone  '以下三个Shading是设置底纹颜色为淡灰色的
                .Shading.ForegroundPatternColor = wdColorAutomatic
                .Shading.BackgroundPatternColor = RGB(242, 242, 242)
            End With
        End If
    Next i
    
End Sub

如果你在设定过程中不喜欢英文、数字、下划线以及特殊字符是RGB(192,0,0)的红色颜色,你可以设定为其它颜色。不喜欢灰色底纹的,也可以把三个Shading删除。

三、给宏代码自定义功能区

1、菜单栏空白处右键,点击“自定义功能区”

2、点击自定义功能区,接着下拉左侧命令选项,选择“宏”。

3、左侧选择刚刚创建的Red_Western_Font_Theme()宏代码,右侧选择“开始”

4、在“开始”处新建组,重命名为“特殊字体样式”

5、左侧选择刚刚创建的Red_Western_Font_Theme()宏代码,右侧选择“特殊字体样式”,点击添加,接着重命名为:英文标红+灰色底纹,选择一张符号。点击确定。

6、在 “开始” 选项栏的 “样式” 旁边出现了我们建立的 “特殊字体样式” 了。

7、选中下面的文本,已知该文本格式全为:等线5号加粗黑色字体。点击上面的,字体变成了我们想要的样式。

等线5号加粗黑色字体
中文5号黑色宋体;英文5号深红色数学体,浅灰色底纹

 四、注意

前面的代码提到 "宋体"采用其英文名称"Simsun",是有一定原因的。

假如我们在Windows部署了Git、PowerShell、CMD。

Git 使用的是utf-8编码,PowerShell、CMD使用的是GBK编码,VBA使用的是非Unicode编码。


当在 “管理语言设置”→“更改系统区域设置” 处,勾选了:Beta版:使用Unicode UTF-8提供全球语言支持(U),可以使得 Git、PowerShell、CMD 不出现中文乱码,但是VBA里面涉及到中文的代码则会标识为乱码,比如:

    Dim rng As Range
    
    Set rng = Selection.Range
    
    With rng.Font
        .Name = "宋体"    

"宋体"实际上会识别为"????"的乱码,导致无法使用。

    Dim rng As Range
    
    Set rng = Selection.Range
    
    With rng.Font
        .Name = "????"    

因此,当系统使用 Beta版:使用Unicode UTF-8提供全球语言支持(U)时,VBA应该避免使用到中文,"宋体" 改成其英文标记"Simsun"

    Dim rng As Range
    
    Set rng = Selection.Range
    
    With rng.Font
        .Name = "Simsun"    

### 如何在 Conda 环境中升级 Python 版本 #### 查找可用的 Python 版本 为了了解哪些 Python 版本可以在当前环境中安装,可以执行以下命令来查找可使用的 Python 版本: ```bash conda search python ``` 这会列出所有可通过 Conda 安装的不同版本的 Python[^1]。 #### 更新现有环境中的 Python 版本到指定版本 如果希望将名为 `python38` 的环境更新至特定版本(比如 Python 3.9),首先激活该环境: ```bash conda activate python38 ``` 接着,可以通过下面这条指令完成 Python 到目标版本的更新操作: ```bash conda install python=3.9 ``` 此方法适用于在线情况下直接从 Anaconda 仓库获取并安装所需的 Python 版本[^2]。 #### 创建新环境时指定期望的 Python 版本 对于新建的 conda 虚拟环境而言,在创建之初就可以设定好想要使用的 Python 版本。例如要建立一个新的带有 Python 3.9 特定 conda 版本的环境,则可以用如下命令实现: ```bash conda create -n new_env_name python=3.9 conda=4.9.2 ``` 这里 `-n` 参数后面跟的是新的环境名称 `new_env_name`,而 `python=3.9` 表明了所期望设置的 Python 版本号[^4]。 #### 离线环境下升级 Python 版本 当处于无法联网的状态下工作时,也可以预先下载对应平台架构下的 tarball 文件,并将其放置于本地路径下,之后再利用类似于这样的命令来进行离线安装: ```bash conda install /path/to/python-3.8.13-h12debd9_0.tar.bz2 ``` 这里的 `/path/to/` 应替换为实际文件所在的绝对或相对路径位置[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值