如下图所示为某个word文档中的当前选中内容

如果要用vba获取当前选中内容所在的标题样式所在的级别,也就是上图中的“2.3.2 整合性”,可以使用如下的vba代码:
Sub QQ1722187970()
Dim oRng As Range
Dim oDoc As Document
Set oDoc = Word.ActiveDocument
Dim oBM As Bookmark
Dim oP As Paragraph
'定位当前的Selection对象所在的所有标题及其子标题的文本所在的区域
Set oBM = oDoc.Bookmarks("\HeadingLevel")
Set oRng = oBM.Range
With oRng
'获取所在的标题样式级别的第一个段落
Set oP = .ListParagraphs(1)
'获取所在的标题样式级别的编号
sNum = .ListFormat.ListString
'整个标题样式级别所包含的所有文本
sText = .Text
'输出"2.32 整合性"
Debug.Print sNum & " " & oP.Range.Text
End With
End Sub
上述代码,使用了word中的预定义书签“\HeadingLevel”定位当前的选择区域所在的标题及其所有子标题的文本。
由于上图word文档中当前的选择区域属于最底层的标题级别,所以不再包含其他子标题,如果选择的区域位于“2.3 设计原则”,则会包含其下属的各个子标题的文本。


发表评论