首页 > 代码库 > Word中使用VBA自动生成公式时的注意事项

Word中使用VBA自动生成公式时的注意事项

Sub GenEQ()
    If Selection.start <> Selection.End Then
        Dim objRange As Range
        Dim objEq As OMath
    
        Set objRange = Selection.Range
        ‘不能加入下面这行注释掉的代码,否则在日文版Word 2007和2010上将不能实现下面的灵活字体控制
        ‘objRange.Text = Selection.Range.Text
        Set objRange = objRange.OMaths.Add(objRange)
        ‘灵活控制哪类字符加斜体
        For i = 1 To objRange.Characters.count
            If objRange.Characters(i).Text Like "[a-zA-Z]" Then
                objRange.Characters(i).Italic = True
            Else
                objRange.Characters(i).Italic = False
            End If
        Next i
        Set objEq = objRange.OMaths(1)
        objEq.BuildUp
        ‘加入下面这行代码,会使日文版Word 2007和2010的行为正常,否则将出现下面的怪异现象,中文版Word 2013没有这种现象:
        ‘在Word中,在第一行输入x=3,选择x=3,使用本函数生成公式(x是斜体,=3不是斜体),回车换行,当前光标将停留在居中位置(进行相同操作,中文版word 2013光标将停在左对齐位置),
        ‘再输入y=x+1,选择y=x+1,使用本函数生成公式(y=x+1都不是斜体)
        objEq.ParentOMath.Type = wdOMathInline
    End If
End Sub

本文出自 “GONE WITH THE WIND” 博客,请务必保留此出处http://h2appy.blog.51cto.com/609721/1604040

Word中使用VBA自动生成公式时的注意事项