Это то, что я придумал, он использует одну подпрограмму для вставки разрыва после полужирного текста, а затем вызывает другую подпрограмму, чтобы сделать то же самое для не выделенного текста. Я использовал константу 'vbCrLf', которая обозначает перевод строки возврата Visual Basic, она равна Chr (13) + Chr (10), и я считаю, что это лучший способ для совместимости при вставке переноса строки в документ, а не Chr (11).
Sub InsertBreakAfterBold()
'Select entire document
Selection.WholeStory
'Make each .Method belong to Selection.Find for readability
With Selection.Find
'Set search criteria for bold font
.Font.Bold = True
'Find next occurrence
.Execute
'Each time bold text is found add a line break to the end of it then find the next one
Do While .Found
Selection.Text = Selection.Text + vbCrLf
.Execute
Loop
End With
'Repeat process for nonbold text
Call InsertBreakAfterNonbold
End Sub
Sub InsertBreakAfterNonbold()
Selection.WholeStory
With Selection.Find
.Font.Bold = False
.Execute
Do While .Found
Selection.Text = Selection.Text + vbCrLf
.Execute
Loop
End With
End Sub
Ссылка Microsoft на VBA была моим самым большим ресурсом, чтобы сделать это: https://docs.microsoft.com/en-us/office/vba/api/overview/word