数学文档中的西文字符常常表示变量,在现行的教材中是用斜体字符表示的,所以,在数学文档(包括PPT、DOC)中,最好也将其转化为斜体,看似专业些。
问题是,这些个字符是夹杂在汉字字符之间的,如果手动转化,费时费力,有没有自动化的办法呢?
一般而言,一个操作重复到第3遍,我就要设法通过自动化的方法解决,可当前的问题似乎除了极少数数学老师外,其他人没有这方面的需求,所以只能自己完成。
经过调试,我写出了如下的代码:
- Sub 英文斜体()
- On Error Resume Next
- Dim myString As String, strFind As Variant
- Dim i As Integer
- Dim TxtRng, foundText As TextRange
- myString = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
- Set TxtRng = ActiveWindow.Selection.ShapeRange.TextFrame.TextRange
- If Not (TxtRng Is Nothing) Then
- For i = 1 To Len(myString)
- strFind = Mid(myString, i, 1)
- Set foundText = TxtRng.Find(FindWhat:=strFind)
- Do While Not (foundText Is Nothing)
- With foundText
- If .Font.Name = "Times New Roman" Then _
- .Font.Italic = msoTrue
- Set foundText = _
- TxtRng.Find(FindWhat:=strFind, _
- After:=.Start + .Length - 1)
- End With
- Loop
- Next
- Else
- MsgBox "没有选择文本框对象," & Chr(13) & "请选择后执行此过程"
- End If
- End Sub
复制代码
这个宏可以将所有选中的文本框中的字体为“Times New Roman”的西文字符转化为斜体。之所以要限定为“Times New Roman ”,是因为在PowerPoint2010中,公式也可以作为文本框字符,只是其使用的字体为Cambria Math,所以这个宏不会影响到公式中的字符。贴个图,让大家看得清楚些:
|