在 returns 和 : 之后格式化文本段
Format text segments after returns and : in text
我们有一系列文档需要格式化以提高可见性。
作为我们语音到文本协议的输出,我们得到了一份文字记录。
VBA 脚本应该在每个 (return) 之后将文本格式化为粗体,并且 (:) 之后的文本在下一个 return.[=12= 之前不加粗]
示例:
Speaker1 Question1: Answer Answer Answer
Speaker1 Question2: Answer Answer Answer
这在函数的第一部分没有按预期工作。
Sub BoldGenerator()
' BoldGenerator Macro
Selection.WholeStory
'Make each .Method belong to Selection.Find for readability
With Selection.Find
'Set search criteria for break font
.Text = "^l"
'Find next occurrence
.Execute
Do While .Found
Selection.Text = Selection.Font.Bold = True
.Execute
Loop
End With
'
Call BoldGenerator
End Sub
这应该将 (return)(实际上是换行或回车 return)和冒号 (:)
之间的所有内容加粗
这并不容易 VBA。 VBA 中使用了非原生的正则表达式,因此我们需要从 VBScript 库中获取它们。我们使用正则表达式来查找所有在回车 return 之后开始并以冒号结束的实例。正则表达式无法更改格式(变为粗体)。所以我们也需要使用 .Find
方法。我们再次找到之前找到的内容,但这次我们将其设为粗体。
你会看到第一个实例不会变成粗体,因为它没有在回车后开始return。
Sub BoldGenerator()
Dim RE As Object
Dim REMatches As Object
Dim mch As Object
Selection.HomeKey wdStory
Selection.WholeStory
Set RE = CreateObject("vbscript.regexp")
With RE
.Global = True
.Pattern = "\r(.+?:)"
End With
Set REMatches = RE.Execute(Selection.Text)
If REMatches.Count > 0 Then
Selection.HomeKey wdStory
With Selection.Find
.ClearFormatting
.Forward = True
.Format = False
.MatchCase = True
For Each mch In REMatches
.Text = mch
.Execute
Selection.Font.Bold = True
Selection.MoveRight wdCharacter
Next
End With
Selection.HomeKey wdStory
End If
Set RE = Nothing
Set REMatches = Nothing
Set mch = Nothing
End Sub
我们有一系列文档需要格式化以提高可见性。
作为我们语音到文本协议的输出,我们得到了一份文字记录。
VBA 脚本应该在每个 (return) 之后将文本格式化为粗体,并且 (:) 之后的文本在下一个 return.[=12= 之前不加粗]
示例:
Speaker1 Question1: Answer Answer Answer
Speaker1 Question2: Answer Answer Answer
这在函数的第一部分没有按预期工作。
Sub BoldGenerator()
' BoldGenerator Macro
Selection.WholeStory
'Make each .Method belong to Selection.Find for readability
With Selection.Find
'Set search criteria for break font
.Text = "^l"
'Find next occurrence
.Execute
Do While .Found
Selection.Text = Selection.Font.Bold = True
.Execute
Loop
End With
'
Call BoldGenerator
End Sub
这应该将 (return)(实际上是换行或回车 return)和冒号 (:)
之间的所有内容加粗这并不容易 VBA。 VBA 中使用了非原生的正则表达式,因此我们需要从 VBScript 库中获取它们。我们使用正则表达式来查找所有在回车 return 之后开始并以冒号结束的实例。正则表达式无法更改格式(变为粗体)。所以我们也需要使用 .Find
方法。我们再次找到之前找到的内容,但这次我们将其设为粗体。
你会看到第一个实例不会变成粗体,因为它没有在回车后开始return。
Sub BoldGenerator()
Dim RE As Object
Dim REMatches As Object
Dim mch As Object
Selection.HomeKey wdStory
Selection.WholeStory
Set RE = CreateObject("vbscript.regexp")
With RE
.Global = True
.Pattern = "\r(.+?:)"
End With
Set REMatches = RE.Execute(Selection.Text)
If REMatches.Count > 0 Then
Selection.HomeKey wdStory
With Selection.Find
.ClearFormatting
.Forward = True
.Format = False
.MatchCase = True
For Each mch In REMatches
.Text = mch
.Execute
Selection.Font.Bold = True
Selection.MoveRight wdCharacter
Next
End With
Selection.HomeKey wdStory
End If
Set RE = Nothing
Set REMatches = Nothing
Set mch = Nothing
End Sub