【发布时间】:2014-09-03 20:04:12
【问题描述】:
我想更改以特定字符开头和结尾的特定单词的样式(例如!)
例如,其中一张幻灯片如下所示:
安静的地方
- No1 吃
- No2 说话
- !不!睡觉
我有一个特定的字符!,表示要修改(将颜色更改为红色)
所以,我想我需要 VBA 中的函数:
strtok
读取所有字符串(可能在每张幻灯片中用空格''分隔)
输出:“安静”“地点”“No1”“吃”“No2”“说话”“!No3!” “睡觉”
strfind (strcmp)
对于每个单词,判断第一个和最后一个字符是否包含'!'
输出:“!No3!”
myfunc
对于以'!'开头和结尾的单词,修改它例如'bold'
这样的例子的结果是:
安静的地方
- No1 吃
- No2 说话
- No3 睡觉
我从sberry找到了一个代码
Sub StrModify()
Dim p As Presentation: Set p = ActivePresentation
Dim s As Slide
Dim sh As Shape
For Each s In p.Slides
For Each sh In s.Shapes
If sh.HasTextFrame Then
If sh.TextFrame.HasText Then
Debug.Print sh.TextFrame.TextRange.Text
End If
End If
Next
Next
End Sub
这个函数的输出是:
安静的地方
不吃东西
二话不说
!不!睡觉
不是由空格''标记的
是否有类似“strtok”的函数将“安静的地方”与“安静的”和“地方”分开?
【问题讨论】:
-
我发现 WordArray = Split(sh.TextFrame.TextRange.Text, ' ') 完成了这项工作。但是如何访问 WordArray 中的单词并进行修改呢?
标签: vba powerpoint