如何解决VBA WORD循环遍历句子和语句行
那有可能吗?
编辑:解释我的自我,并以另一种方式思考
我可以循环显示低谷的字母,单词和段落,但不认为应该是句子,也找不到行的引用。
作为一幅价值一千个单词的图像,我附上一张图片以说明自己:
- 以黑色为正方形的文字示例
- 以绿色表示我在使用波纹管后获得的成功
- 红色方框,我该怎么办
example of sentences coloured as mention,image as link as it is my first post
我的目的是突出显示/标记/上色不适合单个页面宽度的行,例如以黄色正方形显示。但是不确定如果我无法实现轻松的任务该怎么办。
If False Then ' Cool,letter by letter
With ActiveDocument
For i = 1 To .Characters.Count
.Characters(i).Font.Color = Int(Rnd * 1048576)
Next
End With
End If
If False Then ' Cool,word by word
With ActiveDocument
For i = 1 To .Words.Count
.Words(i).Font.Color = Int(Rnd * 1048576)
Next
End With
End If
If False Then ' :-( same as paragraph
With ActiveDocument
For i = 1 To .Sentences.Count
.Sentences(i).Font.Color = Int(Rnd * 1048576)
Next
End With
End If
If True Then ' Cool,paragraph by paragraph
With ActiveDocument
For i = 1 To .Paragraphs.Count
.Paragraphs(i).Range.Sentences(1).Font.Color = Int(Rnd * 1048576)
Next
End With
End If
注意+添加:解释我的自我,并以另一种方式思考
作为一个稳定的人,我向自己解释说,总体目的ID是用来识别“不适合一个打印行的文本行”。如果感兴趣的话,这与写作诗歌有关。 我想我也可以尝试在打印线上“定位每个字符”,识别“行刹车”字符(Word不考虑刹车),并手动逐个单词/逐个字母上色。 但是我在字符对象上都找不到,该属性指向打印视图中的位置。
解决方法
可能有可能进行优化,但这有效!!,(感谢John Korchok)
For Each p In ActiveDocument.Paragraphs
first_word_of_paragraph = True
For Each w In p.Range.Words
If first_word_of_paragraph = True Then
first_word_of_paragraph = False
actual_line_vertical_start = w.Information(wdVerticalPositionRelativeToPage)
End If
If first_word_of_sentence = True Then
first_word_of_sentence = False
actual_line_vertical_start = w.Information(wdVerticalPositionRelativeToPage)
End If
If w.Text = "" Then
first_word_of_sentence = True
End If
If actual_line_vertical_start <> w.Information(wdVerticalPositionRelativeToPage) Then
w.HighlightColorIndex = wdRed
End If
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。