前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Word VBA应用技术:列出文档中的所有书签

Word VBA应用技术:列出文档中的所有书签

作者头像
fanjy
发布2023-02-16 09:48:50
1.1K0
发布2023-02-16 09:48:50
举报
文章被收录于专栏:完美Excel

标签:Word VBA

如果文档中设置了许多书签,如何清楚地看到它们并快速导航?一个好的方法是创建菜单实现,其中在菜单上为每个书签创建一个项目,这样在选取该项目时快速转到该书签。

代码如下:

代码语言:javascript
复制
Sub CreateBookMarkMenu()
Dim bkBookmark As Bookmark
Dim cbrBar As CommandBar
Dim cbrPopup As CommandBarPopup
Dim cbrButton As CommandBarButton 
Dim ShowHiddenStatus As Boolean

'查看隐藏书签是否设置为“可见”,
'将此设置存储在一个变量中,以便在结尾返回。
'然后使隐藏的书签不可见
'(不希望交叉引用等出现在菜单中) 
ShowHiddenStatus = ActiveDocument.Bookmarks.ShowHiddenActiveDocument.Bookmarks.ShowHidden = False
Set cbrBar = CommandBars.ActiveMenuBar

'如果已经存在,则首先删除书签菜单
Set cbrPopup = CommandBars.FindControl(Tag:="重新创建")
If Not cbrPopup Is Nothing Then
cbrPopup.Delete
End If 
If ActiveDocument.Bookmarks.Count > 0 Then
Set cbrPopup = cbrBar.Controls.Add(Type:=msoControlPopup,Before:=cbrBar.Controls.Count + 1)
With cbrPopup.Caption = "书签"
.Tag = "重新创建"
End With 
For Each bkBookmark In ActiveDocument.Bookmarks   
Set cbrButton = cbrPopup.Controls.Add(Type:=msoControlButton)
With cbrButton
.Caption = bkBookmark.Name
.Style = msoButtonCaption
.OnAction = "SelectBookMark"
End With
Next bkBookmark

'在底部添加刷新按钮 
Set cbrButton = cbrPopup.Controls.Add(Type:=msoControlButton)
With cbrButton.Caption = "刷新列表"
.Style = msoButtonCaption  
.OnAction = "CreateBookMarkMenu"
.BeginGroup = True
End With
End If 

ActiveDocument.Bookmarks.ShowHidden = ShowHiddenStatus

Set cbrButton = Nothing
Set cbrPopup = Nothing
Set cbrBar = Nothing
Set bkBookmark = Nothing
End Sub

Private Sub SelectBookMark() 
If ActiveDocument.Bookmarks.Exists(CommandBars.ActionControl.Caption) Then
ActiveDocument.Bookmarks(CommandBars.ActionControl.Caption).Range.Select
End If
End Sub

运行CreateBookMarkMenu过程后,将在Word文档功能区“加载项”选项卡中出现一个名为“书签”的菜单,如下图1所示。

图1

单击书签下拉箭头,出现包含文档所有书签项的菜单,如下图2所示。

图2

单击某个书签,就会定位到文档该书签处。如果在文档中新增或删除了书签,单击“刷新列表”,菜单会更新。

当然,你可以对上述代码稍作改动,将其功能放置在已有的选项卡中或者右键快捷菜单中,这取决于你的使用习惯。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-11-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档