Преобразование регистра в MS Word - PullRequest
0 голосов
/ 08 мая 2020

Приведенный ниже код преобразует слова в определенном стиле 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
...