vba - VBA WORD循环遍历句子和句子行
问题描述
这甚至可能吗?
编辑:解释我自己,并以另一种方式思考
我可以循环遍历字母、单词和段落,但没有想到我认为应该是句子,也找不到任何关于行的参考。
作为一张千言万语的图,我附上一张图来解释一下自己:
- 以黑色为平方的文本示例
- 在绿色上平方我用下面的代码成功了
- 红色方块,我能弄清楚该怎么做
以颜色作为提及的句子示例,图像作为链接,因为它是我的第一篇文章
我的目的是突出/标记/着色那些不适合单个页面宽度的线条,例如黄色正方形。但不知道应该怎么做我无法实现简单的事件。
有什么帮助吗?(在这里和其他地方搜索了几个小时但没有成功)
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
注意+添加:解释我自己,并以另一种方式思考
正如下面的某些人所说的那样,我自己解释说,总体目的是识别“不适合一个打印行的文本行”。如果有兴趣,它与写诗有关。我想我也可以尝试在打印线上“定位每个字符”,识别“line-brake”字符(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
推荐阅读
- java - ComputationException:java.lang.ArrayIndexOutOfBoundsException:索引 83315 超出长度 71658 的范围
- html - 对滑块应用不透明度
- java - OneToMany 映射在 findById/findAll 期间生成错误的休眠 SQL
- python - Gensim 困惑分数增加
- c# - 如何在 Windows 10 IIS 中支持 Blazor Server 应用程序上的多个浏览器选项卡?
- javascript - 登录期间我的 req.body 一直未定义
- asp.net-web-api - Asp.Net Core Web API 补丁 ID 始终为 NULL
- python - 每隔一段时间的Python脚本读取终端
- python - 序列的第一个和最后一个索引
- c++ - 对“距离”的错误引用不明确