找回密码
 立即注册
搜索

将ppt文本框中的指定的西文字符转化为斜体

3
回复
439
查看
[复制链接]

12

主题

216

帖子

39

幻币

一流武者

Rank: 3Rank: 3

积分
256
QQ
2016-4-12 13:32:15 显示全部楼层 |阅读模式
数学文档中的西文字符常常表示变量,在现行的教材中是用斜体字符表示的,所以,在数学文档(包括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,所以这个宏不会影响到公式中的字符。贴个图,让大家看得清楚些:
154638n4j4nsn54pjahq4v.png
PPT学习论坛
回复

使用道具 举报

9

主题

218

帖子

30

幻币

一流武者

Rank: 3Rank: 3

积分
262
QQ
2016-4-12 14:45:18 显示全部楼层
谢谢分享,代码很清爽
PPT学习论坛
回复 支持 反对

使用道具 举报

12

主题

219

帖子

40

幻币

一流武者

Rank: 3Rank: 3

积分
274
QQ
2016-4-12 14:46:52 显示全部楼层
代码是东拼西凑的,所以不简洁,希望有高手拍砖。
PPT学习论坛
回复 支持 反对

使用道具 举报

8

主题

206

帖子

36

幻币

一流武者

Rank: 3Rank: 3

积分
263
QQ
2016-4-12 15:37:48 显示全部楼层
感谢楼主分享,学习
PPT学习论坛
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册