Microsoft Word / Excelでフォーカスが変更されたときに、選択したテキストを強調表示したままにする方法


49

この質問に関連する:私のケースがMicrosoft Wordに関するものである場合を除き、フォーカスされていないときにExcelでセル選択を表示します。

Microsoft WordまたはExcel(2003、2007、2010または2013)でテキストまたは列/行を選択すると、Wordで次のように強調表示されます。

ここに画像の説明を入力してください

およびExcel:

ここに画像の説明を入力してください

ただし、フォーカスを別のプログラムに変更すると、強調表示されたテキストは強調表示されなくなります。

私は通常2台のモニターを使用します。1台のモニターには読み取りが必要なデータを含むドキュメント/スプレッドシートが含まれ、もう1台のモニターには実際に作業を行っています。いくつかのテキスト(またはセル)を選択して、多くのページのデータから目立つようにし、プログラムを切り替えますが、強調表示されたテキストは表示されなくなります。

この問題の永続的な解決策はありますか?


@CGTheLegend:提供された代替ソリューションは費用がかかるか、複数のファイル間でAFAIKが機能しない一時的なマクロです。
glenneroo

回答:


23

問題の半分(ExcelからWordに切り替えるとき)を修正する簡単な方法は、テキストをコピーすることです。Ctrl + cを押すと、セルは引き続きマークされます(highligthingはなくなりましたが、テキストの周りに点線が残っています)。

これの欠点は、コピーされたセルを保持している限り、テキストにのみマークが付けられることです。つまり、他に何もコピーできないか、マーキングがなくなっています。残念ながら、これはWordからExcelには機能しません。


14

これは、Microsoftの排他的な「機能」のようです。ほとんどのプロジェクトでは、読み取り専用アクセスのみが必要であり、私の場合は書式設定は関係ないため、この動作を示さないOpenOfficeに切り替えました。


3
この答えが最善の解決策に値するとは思わない。別のアプリケーションを使用するだけでは、誰にとっても最善のソリューションとは限りません。
CGTheLegend

IこのソリューションのようなMSは100年以来、このバグを削除しませんでしたので、
ハルトムート・P.

個人的には、LibreOfficeの互換性が向上しました。
ダミアンフォーゲル

6

この問題に対する永続的な解決策はありません。

回避策(しばらく迷惑になる場合があります)は、選択したセルの選択中に強調表示を変更し、再度選択して色をドロップすることです。

このコードをSheet1コードの後ろに貼り付けてスプレッドシートに移動し、いくつかのセルを選択し、他のセルを選択してから最初のセルを再選択して色をドロップします

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 SelectionChangeまたはActivateイベントのいずれかで背景色を変更するという考えは、ExcelとWordの両方で機能するはずです。

6

このVBaはそれを行いますが、ハイライトを使用していないと仮定します。もしそうなら、ハイライトは台無しになりますので使用しないでください。

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

MS OfficeにVBAを追加するにはどうすればよいですか?


大規模な回避策として(強調表示が機能しない場合)、JRulerのようなものを使用できます(私に聞いてください:) !! )これにより、問題の行が上にあるルーラーを画面上に残すことができるため、あなたの目がその画面に戻ったときにあなたがどこにいたかを見ることができます(したがって、私は強調表示を失いましたが、行3)を見ていました!

誤解しないでください、これは面倒であり、これを頻繁に行うと苦痛になりますが、どのプログラム(WordおよびExcel)でも十分です。

ここに画像の説明を入力してください


4

この問題を10年間経験した後も、私にとってはうまくいく解決策を見つけました。残念ながら無料ではありません... Actual Window Manager特定のアプリで有効にできる「非アクティブ化を無視」という機能があります。これにより、ウィンドウにフォーカスがなくても、まだフォーカスがあると見なされます。すべてのオフィスアプリでこれをオンにしましたが、別のウィンドウにフォーカスがある場合でも、強調表示された選択を引き続き見ることができます。負の副作用もありませんでした。また、複数のモニターを使用していますが、このプログラムには、複数のモニターを操作するための便利なツールが他にもたくさんあります。試用版をインストールしてからアンインストールすると、30%オフになりました。これを行う無料のプログラムがあるかもしれませんが、それを見つけることができませんでした...これが私を助けたのと同じくらい誰かを助けることを願っています!


残念ながら、この方法はWord 2010およびWindows 7では機能しません
Eugene Mala

2

私はこの同じ問題に長い間苦労していました。私も、複数の画面を使用しているときに高密度のExcelファイルで迷子になります。

インターネット上で利用可能なExcelプラグインの膨大なコレクションがあります。Kutools Excel拡張機能(無料版)には、ワンクリックでオン/オフのハイライト十字線があり、Excelに焦点が合っていなくても表示されていることがわかりました。Kutoolsには多くの追加機能があるようにも見えますが、利用可能な唯一のオプションではありません。

以下に、クツールのハイライトクロスヘアの動作のスクリーンショットを示します。

クツールのスクリーンショットは、実際の十字線を強調しています

一部の人々はサードパーティのプラグインやツールを恐れていることは知っていますが、それらを使用するのがおそらく最も速くて簡単なオプションです。


0

セルの長さを引き伸ばすテキストボックスを挿入します。テキストボックスに記入する*******同様の文字の行を入力します。ハードコピーの定規や紙のように、テキストボックスをページの下に移動できます。完了したら削除します。


0

選択が変更されたときにセルの色を配置するシンプルなソリューション

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


フォーカスが失われたときにのみセルの色を変更する複雑なソリューション

標準モジュール:

Option Explicit    
Public s As Range

シートで作業するもの:

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

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


引用:簡単な解決策は、@ Daveの回答基づいています。複雑なソリューションは、特にこの投稿@JohnColemanの助けを借りて、多くのソースから集められました


0

これを行う非常に簡単な方法は、条件付き書式設定とVBAを使用することです。

ThisWorkbookコードにこれを追加するだけです:

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

次のコードを1回だけ実行して、条件付き書式ルールを作成します。

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

挿入図形/長方形の使用は、簡単な回避策です。「塗りつぶしなし」オプションを選択すると、それを通してセルを編集することさえできます。

ここの写真を見てください:

ここの写真を見てください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.