查找并更改现有邮件中的highlightcolor

时间:2014-03-13 19:10:33

标签: vba outlook outlook-vba

我正在使用Outlook 2013,并尝试在已打开的邮件中查找黄色突出显示的文本,并更改​​突出显示颜色。

我的眼睛很糟糕,当高亮颜色为黄色时,我无法区分高亮显示的文字。绿色很好,Teal也是......所以我希望改变它。

我在Word 2013中做过。

Sub changer_jaune() 'change_yellow()
  Dim txt_hl As Range
  With Selection.Find
    .Highlight = True
    .Forward = True
    .Wrap = wdFindContinue
    While .Execute
      Set txt_hl = Selection.Range
      If txt_hl.HighlightColorIndex = wdYellow Then
        txt_hl.HighlightColorIndex = wdTeal 'wdTurquoise
        ' dark : wdTeal wdGreen
        ' too dark : wdViolet wdBlue
      End If
    Wend
  End With
End Sub

然后,我试图让它在Outlook中运行:

Sub change_jaune_PR_COPIE()
Dim objItem As Object
Dim objInsp As Outlook.Inspector

'Reference the current Outlook item
Set objItem = Application.ActiveInspector.CurrentItem
If Not objItem Is Nothing Then
    If objItem.Class = olMail Then
        Set objInsp = objItem.GetInspector
        If objInsp.EditorType = olEditorWord Then

           'I switch to Edit Mode to be able to change the opened incoming mail
           'I would like to check for this before switching... But I don't know how...
           objInsp.CommandBars.ExecuteMso ("EditMessage")

           Set objDoc = objInsp.WordEditor
           Set objWord = objDoc.Application
           Set objSel = objWord.Selection

     With objWord.Selection.Find
        .Highlight = True
        .Forward = True
        .Wrap = wdFindContinue
        'While .Execute
          Set txt_hl = objWord.Selection.Range
          If txt_hl.HighlightColorIndex = wdYellow Then
            txt_hl.HighlightColorIndex = wdTeal 'wdTurquoise
            ' dark : wdTeal wdGreen
            ' too dard : wdViolet wdBlue
          End If
        'Wend
      End With

        End If
    End If
End If

'Saving the changes on this specific mail (which actually never occurs!!!)
objItem.Save

Set objItem = Nothing
Set objWord = Nothing
Set objSel = Nothing
Set objInsp = Nothing

End Sub

它没有用。

While .Execute

无法识别。它正确

End With

1 个答案:

答案 0 :(得分:1)

我知道这个答案可能看起来有些偏离主题,但我正在寻求有效帮助你的方法。我很遗憾听到你的眼睛非常糟糕。 我建议切换到高对比度模式,而不是在特定应用程序中调整颜色。根据我自己的坏眼睛经验,它比程序化解决方案有几个优点:

  • 它是您使用的所有应用程序的全栈解决方案,不仅适用于Outlook
  • 它是如何工作的:使用过的显示颜色被强制为相对狭窄的一致调色板,因此所有预期的对比都会突然出现

    • 在Outlook中,突出显示颜色与背景明显不同,大多数其他应用都是如此(这是您似乎寻求的效果)
    • 调色板的所有颜色可以自定义,优于现代Windows颜色方案(Windows 7和8),例如,您无法将窗口的白色背景更改为其他颜色(这是可能的)仅适用于Windows 98外观的经典配色方案)
      • Windows 8中有6个高对比度方案,您可以创建自己的
      • 我默认更改的唯一颜色是 Windows背景按钮背景,因为它们设置为相同的颜色,如果您区分它们,UI可以获得更多可读。我通常使用修改后的高对比度方案#1 (暗), Windows背景调整为RGB 60,60,60(十进制)。

  • 您可以通过按(left)Alt+Shift+PrtScr

  • 轻松启用/禁用高对比度模式
  • 某些应用程序可能需要重新启动才能将所有颜色正确调整为高对比度模式。问题在于他们自己。一些业余应用程序可能根本不支持高对比度模式。我试过的所有主要应用程序都运行得相当好。

    • 在大多数情况下,它是需要重启的Web浏览器,也是名称SQL Server Management Studio
    • 高对比度模式的预期功能是删除所有背景图像以实现前景文本的更高可读性。但是,如果某些网页在主控件的角色中使用背景图像,则不会显示它们。例如,您不会在此网站上看到upvote / downwote按钮......

  • 具有深色背景的高对比度模式即使对于健康的人来说也是理想的夜晚模式。我这样用它。夜间工作时,深色背景对眼睛更容易。想想当外面黑暗时,汽车司机将导航装置切换为夜间颜色。

如果这没有帮助,请随意下载:)