【问题标题】:Looking for Word VBA code to highlight text using current default highlight color寻找 Word VBA 代码以使用当前默认突出显示颜色突出显示文本
【发布时间】:2017-12-17 11:25:56
【问题描述】:

几个月来,我一直在断断续续地搜索高低,但无济于事,我可以将其包含在宏中以使用当前默认突出显示颜色突出显示文本。我浏览了我的个人资源书籍以及谷歌的所有内容,包括这里。

我创建了无数个宏,以各种可能的(基本)颜色突出显示文本,直到周日,它们都很好用。但有时我有一个场景,我想以一种特定的颜色连续多次突出显示随机文本。然后我想换颜色……一会儿。然后再次切换......一段时间。

我有很多突出显示选项的键盘快捷键(很多),包括用于突出显示我手动选择的文本的内置命令快捷键。因此,例如,我可以手动选择左侧的三个单词,然后使用 Ctrl+Alt+H 来调用内置的 Highlight命令,它将使用当前的默认颜色。

但我无法通过宏进一步自动化。例如,我使用了许多不同的宏迭代来在我输入文本时突出显示文本,或者自动突出显示我左边的 X 个单词,或者一行、句子或段落。但是对于这些宏中的每一个,我都不得不声明一种特定的颜色。这意味着我必须拥有大量的宏系列才能对每种(基本)颜色变化做同样的事情。如果我只想偶尔突出显示特定颜色的文本,那很好。但是当我知道我将使用特定颜色作为下一个,比如 20 或 40 个高光时,我很想设置一个默认颜色,然后只使用一个通用的高亮命令而不是一个以颜色为中心的命令(这更步骤)。

【问题讨论】:

  • 是否有机会在 Word 中使用 sendkeys 来模拟 Ctrl + Alt + H,如果这会应用默认值?尽管链接的文章有一个建议 WinAPI over sendkeys 的答案。我对 Word 不太熟悉。
  • 或者将颜色存储在一个变量中,只有在有变化时才更新该变量。将格式设置为该变量?我也在看下面的设置范围,有一个范围。查找然后循环做东西......experts-exchange.com/questions/28172730/…
  • Alt + T, M, R 以 VBA 代码记录您的步骤。重复以停止录制。
  • 嗨 QHarr - 在很长的几年里,我只使用过几次 SendKeys,每次都非常挑剔和不可预测。由于我打算与一些同事分享这个宏,因此我对使用 SendKeys 犹豫不决。但更重要的是,我认为这不是一个选项,因为我需要一个通用命令来使用当前默认颜色是什么。快捷键在事后突出显示文本。我需要在打字时这样做,而且没有捷径。还是)感谢你的建议! :)
  • QHarr,你的第二个建议听起来很有趣。我将对此进行探索。谢谢! :)

标签: vba ms-word


【解决方案1】:

经过多次试验,我终于找到了一种方法。我不确定这是否是最有效的方法,但它确实有效!

我有许多将使用此功能的以高亮为中心的宏,但这里是其中一个使用此功能的示例。我将现有颜色声明为字符串,然后使用字符串而不是特定颜色(我错误地认为这是必需的)。以下宏允许我在输入时突出显示:

    Sub honHighlightOnTypingSelectWord_DEFAULTCOLOR()

        CurColor = Options.DefaultHighlightColorIndex

        Application.ActiveDocument.Application.Options.DefaultHighlightColorIndex = CurColor

            Selection.Words(1).Select
            Selection.Range.HighlightColorIndex = CurColor

    End Sub 

问题解决了!

【讨论】:

  • 这看起来很棒,这是我一直在尝试解决的问题,但我不确定如何利用您的解决方案(我对宏的了解非常有限)。我尝试将您的代码作为新宏粘贴并运行它,但尽管我有灰色突出显示当前,选择突出显示为黄色。如果您有任何建议,我将不胜感激。
猜你喜欢
  • 2018-10-03
  • 2015-07-29
  • 2014-02-03
  • 2013-06-25
  • 2016-11-06
  • 2011-07-12
  • 1970-01-01
  • 2018-07-10
  • 2019-03-27
相关资源
最近更新 更多