Como manter o texto selecionado realçado quando o foco é alterado no Microsoft Word / Excel


49

Relacionado a esta pergunta: Mostrar seleção de célula no Excel quando não estiver em foco, exceto que meu caso diz respeito ao Microsoft Word.

Quando seleciono texto ou uma coluna / linha no Microsoft Word ou Excel (2003, 2007, 2010 ou 2013), ele aparece destacado da seguinte maneira no Word:

insira a descrição da imagem aqui

e Excel:

insira a descrição da imagem aqui

No entanto, quando mudo o foco para outro programa, o texto destacado não é mais destacado.

Geralmente trabalho com 2 monitores, onde um monitor contém um documento / planilha contendo dados que preciso ler e o outro monitor é onde estou realmente trabalhando. Selecionarei algum texto (ou células) para destacá-lo entre as muitas páginas de dados e depois alternarei os programas, mas o texto destacado não será mais visível.

Existe uma solução permanente para esse problema?


@CGTheLegend: as soluções alternativas oferecidas custam dinheiro ou são macros temporárias que o AFAIK não funciona em vários arquivos.
glenneroo

Respostas:


23

Uma maneira rápida de corrigir metade do seu problema (ao alternar do Excel para o Word) é copiar o texto. Quando você pressiona Ctrl + c, as células continuam marcadas (a marcação mais alta desapareceu, mas você ainda tem uma linha pontilhada ao redor do texto).

Uma desvantagem disso é que o texto é marcado apenas, desde que você mantenha as células copiadas. Ou seja, você não pode copiar mais nada ou a marcação desapareceu. Infelizmente, isso não funcionará do Word para o Excel.


14

Este parece ser um "recurso" exclusivo da Microsoft. Para a maioria dos projetos, eu só preciso de acesso somente leitura e a formatação não importa no meu caso, portanto, mudei para o OpenOffice, que não exibe esse comportamento.


3
Não acho que essa resposta mereça a melhor solução. Apenas usar um aplicativo diferente não é exatamente a melhor solução para todos.
CGTheLegend

Eu gosto dessa solução, já que a MS não removeu esse bug há 100 anos
Hartmut P. -

Pessoalmente, experimentei o LibreOffice para ser mais compatível.
Damian Vogel

6

não há solução permanente para esse problema.

uma solução alternativa (que pode ser irritante em um tempo) seria alterar o realce das células selecionadas enquanto elas são selecionadas e selecioná-las novamente para soltar a cor.

Cole esse código na planilha 1 e vá até sua planilha e selecione algumas células, selecione outras e selecione novamente as primeiras a soltar a cor

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim cell As Range

    For Each cell In Target.Cells
        If cell.Interior.Color = RGB(60, 150, 230) Then
            cell.Interior.Pattern = xlNone
        Else
            cell.Interior.Color = RGB(60, 150, 230)
        End If
    Next
End Sub

@DaveRook A ideia de alterar a cor do plano de fundo no evento SelectionChange ou Activate deve funcionar para o Excel e o Word.

6

Este VBa fará isso, mas assume que você NÃO está usando highliting. Se você estiver, seu realce ficará confuso, então não o use.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    ActiveCell.Worksheet.Cells.Interior.ColorIndex = xlNone
    ActiveCell.EntireRow.Interior.ColorIndex = 19
End Sub

Como adiciono o VBA no MS Office?


Como uma solução massiva (se o destaque não funcionar para você), você pode usar algo como JRuler (me ouça :): !! ), pois isso permitirá que você deixe a régua na tela com a linha em questão acima dela. Assim, quando seus olhos voltarem para a tela, você poderá ver onde estava (para poder ver, perdi meu destaque, mas pelo menos consigo ver). estava olhando para a linha 3)!

Não me interpretem mal, isso é trabalhoso e doloroso se você estiver fazendo muito isso, mas pode ser suficiente para qualquer programa (Word e Excel).

insira a descrição da imagem aqui


4

Após dez anos desse problema, me deixando louca, finalmente encontrei uma solução que funciona para mim. Infelizmente não é grátis ... Actual Window Managerpossui um recurso chamado "Ignorar desativação", que pode ser ativado para aplicativos específicos. Isso faz com que a janela pense que ainda tem foco, mesmo quando não tem. Ativei todos os aplicativos de escritório e agora ainda consigo ver a seleção destacada, mesmo quando outra janela está em foco. Eu também não tive nenhum efeito colateral negativo. Eu também uso vários monitores e este programa tem várias outras ferramentas úteis para trabalhar com vários monitores, o que fez valer a pena para mim. Eu instalei a versão de avaliação e depois a desinstalei e me ofereceu 30% de desconto. Pode haver um programa gratuito que faça isso, mas eu não consegui encontrar um ... Espero que isso ajude alguém tanto quanto me ajudou!


Infelizmente esse método não funciona no Word 2010 e no Windows 7
Eugene Mala

2

Eu estava lutando com esse mesmo problema há muito tempo. Também me perco em arquivos densos do Excel ao usar várias telas.

Há uma enorme coleção de plugins do Excel disponíveis na internet. Descobri que a extensão Kutools Excel (a versão gratuita) possui uma mira de destaque de ligar / desligar com um clique que permanece visível mesmo se o Excel não estiver focado. O Kutools também parece ter muitos recursos adicionais, mas certamente não é a única opção disponível.

Aqui está uma captura de tela do Kutools destacar mira em ação:

A captura de tela do Kutools destaca a mira em ação

Sei que algumas pessoas têm medo de plugins ou ferramentas de terceiros, mas usá-los é provavelmente a opção mais rápida e fácil.


0

Insira uma caixa de texto que estenda o comprimento das células. Digite uma linha de ******* caracteres semelhantes para preencher a caixa de texto. Você pode mover a caixa de texto para baixo da página como faria com uma régua ou pedaço de papel em uma cópia impressa. Excluir quando terminar.


0

Uma solução simples que coloca uma cor de célula quando a seleção muda

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Selection.Interior.ColorIndex = xlColorIndexNone
    Selection.Interior.Color = RGB(204, 204, 204)
End Sub


Uma solução complexa que muda apenas a cor da célula quando o foco é perdido

Em um módulo padrão:

Option Explicit    
Public s As Range

Nas folhas que você deseja que funcione:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Set s = Selection
End Sub

Em ThisWorkbook:

Private Sub Workbook_Deactivate()
    If s Is Nothing Then
        Set s = Selection
        Exit Sub
    End If
    s.Interior.ColorIndex = xlColorIndexNone
    s.Interior.Color = RGB(204, 204, 204)

    ' This is optional formatting to make the cells look more like they're actually selected
    s.Borders.Color = RGB(130, 130, 130)
    s.BorderAround _
    Color:=RGB(30, 130, 37), Weight:=xlThick
End Sub

Private Sub Workbook_Activate()
    If s Is Nothing Then
        Set s = Selection
        Exit Sub
    End If
    s.Interior.ColorIndex = xlColorIndexNone
    s.Borders.ColorIndex = xlColorIndexNone
End Sub


Citações: A solução simples é baseada em uma resposta do @Dave ; A solução complexa foi trazido junto de várias fontes, especialmente com a ajuda de @JohnColeman em este post .


0

Uma maneira muito simples de fazer isso é com formatação condicional e VBA.

Basta adicionar isso ao seu código ThisWorkbook:

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    If Application.CutCopyMode = False Then
        Application.Calculate
    End If
End Sub

e execute o seguinte código apenas uma vez , para criar as regras de formato condicional:

Sub CreateConditionalFormats()
  Dim y As FormatCondition
    For Each ws In ThisWorkbook.Worksheets
        DoEvents

        'Optionally delete any existing conditional formats
        'ws.Cells.FormatConditions.Delete

        ' Selection highlight
        Set y = ws.Cells.FormatConditions.Add(Type:=xlExpression, Formula1:="=AND(ROW()=CELL(""row""), COLUMN()=CELL(""col""))")
        With y.Borders(xlTop)
            .LineStyle = xlSolid
            .Color = -16776961
            .TintAndShade = 0
            .Weight = xlThin
        End With
        With y.Borders(xlBottom)
            .LineStyle = xlSolid
            .Color = -16776961
            .TintAndShade = 0
            .Weight = xlThin
        End With
        With y.Borders(xlLeft)
            .LineStyle = xlSolid
            .Color = -16776961
            .TintAndShade = 0
            .Weight = xlThin
        End With
        With y.Borders(xlRight)
            .LineStyle = xlSolid
            .Color = -16776961
            .TintAndShade = 0
            .Weight = xlThin
        End With
        y.StopIfTrue = False
        y.SetFirstPriority

        ' Row highlight
        Set y = ws.Cells.FormatConditions.Add(Type:=xlExpression, Formula1:="=ROW()=CELL(""row"")")
        With y.Borders(xlTop)
            .LineStyle = xlDash
            .Color = -16776961
            .TintAndShade = 0
            .Weight = xlThin
        End With
        With y.Borders(xlBottom)
            .LineStyle = xlDash
            .Color = -16776961
            .TintAndShade = 0
            .Weight = xlThin
        End With
        y.StopIfTrue = False

        ' Column highlight
        Set y = ws.Cells.FormatConditions.Add(Type:=xlExpression, Formula1:="=COLUMN()=CELL(""col"")")
        With y.Borders(xlLeft)
            .LineStyle = xlDash
            .Color = -16776961
            .TintAndShade = 0
            .Weight = xlThin
        End With
        With y.Borders(xlRight)
            .LineStyle = xlDash
            .Color = -16776961
            .TintAndShade = 0
            .Weight = xlThin
        End With
        y.StopIfTrue = False
    Next
End Sub

0

Usar forma / retângulo de inserção é uma solução simples. Selecione a opção "Sem preenchimento" e você poderá editar células através dele.

Dê uma olhada na imagem aqui:

Dê uma olhada na foto aqui

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.