[英]Writing bullet list in Word, from Excel VBA
我將單詞添加到Excel中的多行String strEvap
中。 有些行以項目符號點(項目符號•)開頭。 示例字符串:
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
Word具有可以執行此操作的自動套用格式功能。 自動套用格式可以應用於整個文檔或范圍。 我建議您將內容寫入Range對象,而不是Selection對象,以便可以確定受影響的內容。
自動套用格式可以做很多事情,因此有必要指定您想要和不想要的東西。 我在下面僅包括了項目符號列表選項。 可以想象,您可能想關閉其他選項。 您可以在Word語言參考中找到整個列表。 請注意,有“自動套用格式”以及“ AutoFormatAsYouType”設置。 您不必擔心后者,但是請注意,因為某些AutoFormat設置在AutoFormatAsYouType之后按字母順序列出。
Dim rng as Word.Range
Set rng = objWord.Selection.Range
rng.Text = strEvap
objWord.Options.AutoFormatApplyBulletedLists = True
rng.AutoFormat
*盡管如此,如果您使用.TypeText
它可以與AutoFormatAsYouType設置一起使用。 但是我個人更喜歡不使用Selection和TypeText。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.