Word中的VBA:如果然后切换隐藏/取消隐藏的书签

时间:2015-04-23 14:58:38

标签: vba

这个VBA代码似乎应该可以在Word中的书签上切换hidden = True / False,但事实并非如此。

Private Sub Instructions_Click()

If ActiveDocument.Bookmarks("InstText").Range.Font.Hidden = True Then

Bookmarks("InstText").Range.Font.Hidden = False

Else

Bookmarks("InstText").Range.Font.Hidden = True

End If

End Sub

下一个有效(如果您点击Instructions按钮,相应的书签文字将被取消隐藏)

Private Sub Instructions_Click()

ActiveDocument.Bookmarks("InstText").Range.Font.Hidden = False

End Sub

我看到的另一个想法就是这个:

Private Sub Instructions_Click()

ActiveDocument.Bookmarks("InstText").Range.Font.Hidden = Not  ActiveDocument.Bookmarks("InstText").Range.Font.Hidden

基本上应该把它翻到任何不合适的地方。但那对我不起作用。

谁能告诉我第一个有什么问题?我猜测隐藏的属性由于某种原因不能用作条件,但是 - 为什么不呢?或者是别的什么?最好的方法是什么?

2 个答案:

答案 0 :(得分:1)

将此代码添加到 Normal > NewMacros:

Sub Toggle_Bookmarks()
    ActiveWindow.View.ShowBookmarks = Not ActiveWindow.View.ShowBookmarks
End Sub
  1. 右键单击 Microsoft Word 功能区
  2. 自定义快速访问工具栏
  3. 在左侧列表上方,从宏中选择命令
  4. 选择 Normal.Newmacros.Toggle_Bookmarks
  5. 点击添加
  6. 点击确定

现在,您可以在快速访问工具栏中点击切换书签。

答案 1 :(得分:0)

在我自己的Word加载项中,我显示了找到的所有书签的列表。用户单击书签(或多个书签)并单击切换按钮以切换可见性。

我的例程循环遍历所有选定的书签,并使用这两行代码:

.Bookmarks(intHideShowBookmark).Select
.Bookmarks(intHideShowBookmark).Range.Font.Hidden = Not _ .Bookmarks(intHideShowBookmark).Range.Font.Hidden

使用您提到的第三个选项。希望有所帮助。