Написание списка маркеров в Word, из Excel VBA - PullRequest
0 голосов
/ 13 июня 2018

Я добавляю слова в многострочную строку strEvap в Excel.Некоторые строки начинаются с точек с маркером (символ с маркером •).Пример строки:

3 Evaporateurs
Évaporateur de type mural, modèle --, à installer et raccorder au condenseur, complet avec :
• Alimentation électrique par l’unité de condensation via un câble 14/3+Gnd
• Moteurs ECM

Когда моя строка завершена, я создаю документ Word и записываю строку в документ Word, используя следующий код:

Function FnWriteToWordDoc(strEvap As String, strCond As String)
   Dim objWord
   Dim objDoc
   Dim objSelection

   Set objWord = CreateObject("Word.Application")
   Set objDoc = objWord.Documents.Add
   objWord.Visible = True
   Set objSelection = objWord.Selection
   objSelection.TypeText (strEvap)
End Function

Это прекрасно работает.На данный момент у меня есть документ Word со строкой, написанной в том же стиле, что и мой пример выше.

МОЙ ВОПРОС:

Как отформатировать строки, начинающиеся с маркера, чтобыпризнан частью списка маркеров в Word?В идеале это было бы сделано, когда я пишу документ, но я не против, если он обходит все строки и делает их списком, если это применимо в конце.

Пока у меня есть следующий фрагмент кодаэто превращает выбранную строку в список маркеров.Он работает сам по себе, но должен использоваться из документа Word, а не из кода Excel.

Sub RendreBulletDansWord()
    Selection.Range.ListFormat.ApplyListTemplateWithLevel ListTemplate:= _
        ListGalleries(wdBulletGallery).ListTemplates(1), ContinuePreviousList:= _
        False, ApplyTo:=wdListApplyToWholeList, DefaultListBehavior:= _
        wdWord10ListBehavior
End Sub

1 Ответ

0 голосов
/ 13 июня 2018

Word имеет функцию автоформатирования, которая может сделать это.Автоформат может быть применен ко всему документу или диапазону.Я рекомендую вам записывать содержимое в объект Range, а не в Selection, чтобы вы могли быть уверены в том, на что это влияет.

Автоформат может многое сделать, поэтому необходимо указать, что вы хотите, и нене хочуЯ включил только опцию для маркированных списков ниже.Возможно, вы захотите отключить другие параметры.Вы можете найти полный список в справочнике по языку Word.Обратите внимание, что есть AutoFormat, а также настройки AutoFormatAsYouType.Вам не нужно беспокоиться о последнем, но обратите внимание, потому что некоторые параметры автоформатирования перечислены в алфавитном порядке после AutoFormatAsYouType.

Dim rng as Word.Range
Set rng = objWord.Selection.Range
rng.Text = strEvap
objWord.Options.AutoFormatApplyBulletedLists = True
rng.AutoFormat

* Хотя, если вы используете .TypeText, это может работать с AutoFormatAsYouTypeнастройки.Но я лично предпочитаю , а не работать с Selection и TypeText.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...