Vba 在现有邮件中查找并更改highlightcolor

Vba 在现有邮件中查找并更改highlightcolor,vba,outlook,Vba,Outlook,我正在使用Outlook 2013,试图在打开的邮件中查找黄色突出显示的文本,并更改突出显示的颜色 我的眼睛不好,当突出显示颜色为黄色时,我很难区分突出显示的文本。绿色很好,蓝绿色也是。。。所以我想改变它 我在Word 2013中做到了这一点 Sub changer_jaune() 'change_yellow() Dim txt_hl As Range With Selection.Find .Highlight = True .Forward = True .

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

我的眼睛不好,当突出显示颜色为黄色时,我很难区分突出显示的文本。绿色很好,蓝绿色也是。。。所以我想改变它

我在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

我知道这个答案看起来有点离题,但我正在寻找有效帮助你们的方法。听说你的眼睛很不好,我很难过我建议切换到高对比度模式,而不是在特定应用中调整颜色。根据我自己的坏眼睛经验,它比您的编程解决方案有几个优点:

  • 它是一个完整的堆栈解决方案,适用于您使用的所有应用程序,而不仅仅是Outlook
  • 工作原理:使用的显示颜色被迫相对狭窄,因此所有预期的对比度都会弹出

    • 在Outlook中,突出显示颜色与背景颜色可以清楚地区分开来,这在大多数其他应用程序中都是如此(这似乎是您想要的效果)
    • 调色板的所有颜色都可以定制,这比现代Windows配色方案(Windows 7和Windows 8)更具优势,例如,在现代Windows配色方案中,您无法将窗口的白色背景更改为另一种颜色(仅在具有Windows 98外观的经典配色方案中才有可能)
      • Windows 8中有6种高对比度方案,您可以创建自己的方案
      • 默认情况下,我唯一会更改的颜色是Windows背景或按钮背景,因为它们被设置为相同的颜色,如果您区分它们,UI可以变得更可读。我通常使用修改后的高对比度方案#1(暗色),将Windows背景调整为RGB 60,60,60(十进制)

  • 您可以通过按
    (左)Alt+Shift+PrtScr来轻松启用/禁用高对比度模式

  • 某些应用程序可能需要重新启动,以使其所有颜色正确地适应高对比度模式。问题在他们这边。一些业余应用程序可能根本不支持高对比度模式。我试过的所有主要应用程序都比较好

    • 在大多数情况下,需要重新启动的是web浏览器,我们称之为SQL Server Management Studio
    • 高对比度模式的一个预期特征是移除所有背景图像以实现前景文本的更高可读性。但是,如果某些网页在主控件中使用背景图像,它们将不会显示。例如,您将不会在此网站上看到upvote/downwote按钮

  • 具有深色背景的高对比度模式即使对于眼睛健康的人来说也非常理想,如夜间模式。我是这样用的。夜间工作时,深色背景对眼睛更容易影响。想象一下,当外面很黑时,汽车驾驶员将导航装置切换到夜间颜色

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

打开Word实例,将消息内容复制到Word文档,更改突出显示,然后再复制回来怎么样?我并不是说这很优雅,但考虑到缺乏文档/备选方案,这可能是最快的方法。感谢Jean François,但实际上,vba代码工作正常。我错了!我在实际收到的一封电子邮件上测试宏,发现它没有突出显示,但有一个黄色的背景色。你可以想象我现在有多傻。。。我没有找到一个方法来改变这个黄色的背景颜色通过VBA虽然…公平!你可能想删除这个问题。