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

40

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

Quando seleciono texto ou coluna / linha no Microsoft Word ou Excel (2003, 2007, 2010 ou 2013), ele aparece realçado como este no Word:

eExcel:

No entanto, quando altero o foco para outro programa, o texto destacado não fica mais destacado.

Eu geralmente trabalho com dois monitores, onde um monitor contém um documento / planilha contendo dados que eu 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, em seguida, alterne os programas, mas o texto realçado não estará mais visível.

Existe uma solução permanente para este problema?

    
por glenneroo 27.08.2013 / 14:30

10 respostas

13

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.

    
por 27.04.2014 / 15:00
19

Uma maneira rápida de corrigir metade do problema (ao alternar do Excel para o Word) é copiar o texto. Quando você pressionar Ctrl + c, as células continuarão a ser marcadas (o highlinking desaparecerá, mas você ainda terá uma linha pontilhada ao redor do texto).

Uma desvantagem é que o texto só é marcado, contanto que você mantenha as células copiadas. Significa que você não pode copiar mais nada ou a marcação desapareceu. Infelizmente isso não funcionará do Word para o Excel.

    
por 27.08.2013 / 15:21
6

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

uma solução alternativa (pode ficar irritante em algum momento) seria alterar o realce das células selecionadas enquanto elas são selecionadas e selecioná-las novamente para eliminar a cor.

Cole este código no código da Folha1 e vá até sua planilha, selecione algumas células, selecione outras e, em seguida, 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
    
por 27.08.2013 / 14:41
6

Este VBa fará isso, mas assume que você NÃO está usando highliting. Se você é, seu destaque será 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 eu adiciono o VBA no MS Office?

Como um trabalho massivo (se o destaque não funcionar para você), você poderia usar algo como JRuler (ouça-me :) !! ), pois isso permitirá que você deixe a régua na tela com a linha em questão acima, para que quando seus olhos voltarem a essa tela, você possa ver onde estava (para que possa ver, perdi meu destaque, mas pelo menos consigo ver estava olhando para a linha 3)!

Não me entenda mal, isso é trabalhoso e uma dor se você está fazendo muito isso, mas pode ser suficiente para qualquer programa (Word e Excel).

    
por 27.08.2013 / 15:00
4

Depois de dez anos de problemas, eu finalmente encontrei uma solução que funciona para mim. Infelizmente, ele não é gratuito ... O Gerenciador de Janelas Reais tem 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 isso não acontece. Eu tenho isso ativado para todos os aplicativos do Office e agora ainda posso ver a seleção realçada mesmo quando outra janela estiver em foco. Eu não tive nenhum efeito colateral negativo também. Eu também uso múltiplos monitores e este programa tem uma tonelada de outras ferramentas úteis para trabalhar com múltiplos monitores que valeram a pena para mim. Eu instalei o teste e, em seguida, o desinstalei e ele me ofereceu 30% de desconto. Pode haver um programa gratuito que faz isso, mas não consegui encontrar um ... Espero que isso ajude alguém tanto quanto me ajudou!

    
por 14.08.2016 / 16:53
1

Eu estava lutando com esse mesmo problema por um longo tempo. Eu também me perco em arquivos Excel densos ao usar várias telas.

Há uma enorme coleção de plugins do Excel disponíveis na internet. Descobri que a extensão do Kutools Excel (a versão gratuita) tem um clique em destaque / cruzado que fica visível, mesmo se o Excel estiver desfocado. 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 da mira da Kutools em ação:

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

    
por 04.07.2018 / 16:36
0

Insira uma caixa de texto que estica 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 um pedaço de papel em uma cópia impressa. Excluir quando terminar.

    
por 22.07.2016 / 15:50
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 apenas altera a cor da célula quando o foco é perdido

Em um módulo padrão:

Option Explicit    
Public s As Range

Na (s) planilha (s) em que você deseja trabalhar:

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 por @ Dave ; A solução complexa foi reunida de várias fontes, especialmente com a ajuda de @ JohnColeman em este post .
por 15.12.2016 / 19:29
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
    
por 25.01.2017 / 04:07
0

O uso de forma / retângulo de inserção é uma solução simples. Selecione a opção "Sem preenchimento" e você pode até mesmo editar as células através dele.

Veja a foto aqui:

    
por 18.05.2018 / 22:37