この質問に関連して: フォーカスがないときにExcelでセルの選択を表示 私のケースがMicrosoft Wordに関係している場合を除きます。
Microsoft WordまたはExcel(2003、2007、2010、または2013)でテキストまたは列/行を選択すると、Wordでは次のように強調表示されます。
およびExcel:
ただし、フォーカスを別のプログラムに変更すると、強調表示されたテキストが強調表示されなくなります。
私は通常、2つのモニターを使用します。1つのモニターには、読み取る必要のあるデータを含むドキュメント/スプレッドシートが含まれ、もう1つのモニターは、実際に作業を行う場所です。いくつかのテキスト(またはセル)を選択して、データの多くのページで目立つようにしてから、プログラムを切り替えますが、強調表示されたテキストは表示されなくなります。
この問題に対する永続的な解決策はありますか?
これは、Microsoft独自の「機能」のようです。ほとんどのプロジェクトでは、読み取り専用アクセスのみが必要で、私の場合はフォーマットは重要ではないため、この動作を示さないOpenOfficeに切り替えました。
問題の半分(ExcelからWordに切り替える場合)をすばやく修正する方法は、テキストをコピーすることです。 Ctrl + cを押すと、セルは引き続きマークされます(highligthingはなくなりましたが、テキストの周りにはまだ点線があります)。
これの欠点は、コピーしたセルを保持している限り、テキストのみがマークされることです。他には何もコピーできないか、マーキングがなくなったことを意味します。残念ながら、これはWordからExcelでは機能しません。
この問題には永続的な解決策はありません。
回避策(しばらく迷惑になる場合があります)は、選択されているセルの強調表示を変更し、再度選択して色を落とすことです。
このコードを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
この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)でも十分な場合があります。
この問題が10年間続いた後、私も気が散るようになり、やっと自分に役立つ解決策を見つけました。残念ながら無料ではありません... 実際のウィンドウマネージャー には、特定のアプリに対して有効にできる「非アクティブ化を無視する」と呼ばれる機能があります。これにより、ウィンドウはフォーカスがない場合でもフォーカスがあると見なします。すべてのOfficeアプリでこれをオンにしたので、別のウィンドウにフォーカスがあるときでも、強調表示された選択を表示できます。私はどんな副作用も持っていません。私はマルチモニターも使用しています。このプログラムには、マルチモニターを操作するための他の便利なツールがたくさんあり、私にとってはそれだけの価値があります。試用版をインストールしてからアンインストールすると、30%割引になります。これを行う無料のプログラムがあるかもしれませんが、見つかりませんでした...これが私を助けてくれたのと同じくらい誰かに役立つことを願っています!
私はこれと同じ問題に長い間苦しんでいました。複数の画面を使用しているとき、私も密集したExcelファイルで迷子になります。
インターネットで利用できるExcelプラグインの膨大なコレクションがあります。私はKutools Excel拡張(無料版)にワンクリックのオン/オフハイライトの十字線があり、Excelがフォーカスされていなくても表示されたままであることを発見しました。 Kutoolsにも多くの追加機能があるようですが、利用できる唯一のオプションではありません。
以下は、Kutoolsのクロスヘアのハイライトのスクリーンショットです。
一部の人がサードパーティのプラグインやツールを恐れていることは知っていますが、それらを使用することがおそらく最も速くて簡単なオプションです。
挿入形状/長方形の使用は、簡単な回避策です。 「塗りつぶしなし」オプションを選択すると、それを介してセルを編集することもできます。
こちらの写真をご覧ください。
これを行う非常に簡単な方法は、条件付き書式と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
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
そもそもこの質問をしなければならなかったのはおかしいですが、Microsoftがそれを修正するのに向いていないように思われるので、問題と同じくらい愚かな解決策があります。
RDP(リモートデスクトップ)を別のPCに移動し、Excel/Wordの「ソース」コピー(選択を表示したままにする場所)を起動します。別のインスタンスを自分のPCでローカルに実行します。
フォーカスをリモートからローカルウィンドウに変更しても、リモートインスタンスでの選択は非表示になりませんが(Word/ExcelウィンドウがRDPセッション内でアクティブなウィンドウのままであることを確認してください)、引き続きクリップボードなどを使用できます。
RDPのドライブ共有機能を利用して、リモートマシンが自分のマシンで直接、開きたいファイルにアクセスできるようにすることができます。
セルの長さを拡大するテキストボックスを挿入します。テキストボックスを塗りつぶすために*******同様の文字の行を入力します。ルーラーやハードコピーの紙と同じように、テキストボックスをページの下に移動できます。完了したら削除します。