Vba 自动给日语字符上色

Vba 自动给日语字符上色,vba,ms-word,Vba,Ms Word,我编写了一个宏来检测文档中的日文字体,然后将其颜色设置为红色,同时将英文文本设置为蓝色 除了像0123456789这样的数字字符外,它还能工作。数字不是日语而是英语,所以数字仍然是蓝色的,而不是我想象中的红色 Sub Replace_font_color() Dim kage As Range Dim taro As Document Set taro = ActiveDocument With taro For Each ka

我编写了一个宏来检测文档中的日文字体,然后将其颜色设置为红色,同时将英文文本设置为蓝色

除了像0123456789这样的数字字符外,它还能工作。数字不是日语而是英语,所以数字仍然是蓝色的,而不是我想象中的红色

Sub Replace_font_color()   
    Dim kage As Range
    Dim taro As Document

    Set taro = ActiveDocument     

    With taro
        For Each kage In .Words
            kage.Font.Name = "MS Mincho"
            'Replace all text by MS Mincho Font

            kage.Font.Name = "Times New Roman"
            'Replace all text font by Times New Roman font
            'Since Japanese characters can't be replaced by non Japanese font
            'so the Japanese characters remain in MS Minchon font

            If kage.Font.Name = "MS Mincho" Then
                kage.Font.Name = "MS Mincho"
                kage.Font.Size = 10.5
                kage.Font.Color = vbRed
            End If

            If kage.Font.Name = "Times New Roman" Then
                kage.Font.Name = "Times New Roman"
                kage.Font.Size = 13
                kage.Font.Color = vbBlue
            End If
        Next
    End With    
End Sub
在执行宏之前

执行宏后

您已经说过“因为日文字符不能被非日文字体替换,所以日文字符仍保留为MS Minchon字体。”这意味着数字可以被非日文字体替换,因此逻辑格式为蓝色。•一种方法是检查一个单词是否是日语,然后检查其左右两侧的单词是否是日语,如果是,请将数字也格式化为日语/红色试试看。数字不需要语言,但我明白你为什么认为它们应该。例如,如果文本总是拆分为整段,请立即为整段涂上颜色并跳到下一段。