Приведенный ниже код преобразует слова в определенном стиле c в регистр заголовка, за исключением акронимов.
Однако есть определенные c слов, которые я хотел бы добавить для исключения, и эти слова должны оставаться в нижнем регистре (и, для, но, et c.)
До сих пор это то, что я придумал:
Public Sub TitleCaseDocument()
Dim myDoc As Document: Set myDoc = ActiveDocument
Dim myPara As Word.Paragraph
For Each myPara In myDoc.StoryRanges.Item(wdMainTextStory).Paragraphs
If myPara.Style.NameLocal = "K Level 1" Then
TitleParagraph myPara
End If
Next
End Sub
Public Sub TitleParagraph(ByVal ipPara As Word.Paragraph)
Dim myText As Range
For Each myText In ipPara.Range.Words
If Not UCase$(myText.Text) = myText.Text Then
myText.Words.Item(1).Case = wdTitleWord
End If
Next
End Sub
Обновление от 12 мая 2020 г. Пересмотренный ниже код пытается добавить массив, но все еще не работает
Public Sub TitleCaseDocument()
Dim myDoc As Document: Set myDoc = ActiveDocument
Dim myPara As Word.Paragraph
For Each myPara In myDoc.StoryRanges.Item(wdMainTextStory).Paragraphs
If myPara.Style.NameLocal = "K Level 1" Then
TitleParagraph myPara
End If
Next
End Sub
Public Sub TitleParagraph(ByVal ipPara As Word.Paragraph)
Dim myText As Range
Dim Strtext As String
Strtext = "and,of"
For Each myText In ipPara.Range.Words
If Not UCase$(myText.Text) = myText.Text Then
myText.Words.Item(1).Case = wdTitleWord
Else If Not Strtext = myText.Text Then
myText.Words.Item(1).Case = wdTitleWord
End If
Next
End Sub