キーボードショートカットCtrl+ Click を使用して、複数のExcelセルを(連続的または非連続的に)選択できます。
これらの以前に選択したセルの1つ以上の選択を解除するにはどうすればよいですか?
キーボードショートカットCtrl+ Click を使用して、複数のExcelセルを(連続的または非連続的に)選択できます。
これらの以前に選択したセルの1つ以上の選択を解除するにはどうすればよいですか?
回答:
SHIFTおよび/またはCTRLキーを使用することにより、連続しない範囲を選択できます。ただし、セルまたはエリアを誤って選択した場合、選択範囲全体を失い、最初からやり直すことなく、選択範囲からそれらを削除する方法は組み込まれていません。このページでは、現在の選択からアクティブセルまたはアクティブセルを含む領域を削除するVBAプロシージャ、UnSelectActiveCellおよびUnSelectCurrentAreaについて説明します。選択範囲内の他のすべてのセルは選択されたままになります。
これらをExcelで開いているすべてのブックで使用できるように、個人用マクロブックに追加することをお勧めします。
この手順により、選択からアクティブセルが削除されます。
Sub UnSelectActiveCell()
Dim R As Range
Dim RR As Range
For Each R In Selection.Cells
If StrComp(R.Address, ActiveCell.Address, vbBinaryCompare) <> 0 Then
If RR Is Nothing Then
Set RR = R
Else
Set RR = Application.Union(RR, R)
End If
End If
Next R
If Not RR Is Nothing Then
RR.Select
End If
End Sub
この手順は、アクティブセルを含む領域を選択から削除します。
Sub UnSelectCurrentArea()
Dim Area As Range
Dim RR As Range
For Each Area In Selection.Areas
If Application.Intersect(Area, ActiveCell) Is Nothing Then
If RR Is Nothing Then
Set RR = Area
Else
Set RR = Application.Union(RR, Area)
End If
End If
Next Area
If Not RR Is Nothing Then
RR.Select
End If
End Sub
deselect
細胞に到達するかを知ることができません。それは絶対にばかげています!2列ごとに選択していますが、間違えた場合は最初からやり直す必要がありますか?それは非常識です!
複数のセルを選択解除するより堅牢な方法は、このExtendOfficeの記事で説明されています。追加のプロンプトが含まれますが、任意の数のセル/選択を一度に選択解除できます(アクティブなセルまたは領域のみを選択解除する代わりに)
私はここにスクリプトを投稿していますが、使いやすさを少し改善しています(元の投稿から冗長な最初のプロンプトを条件付きで削除しました)。
Sub DeselectCells()
Dim rng As Range
Dim InputRng As Range
Dim DeleteRng As Range
Dim result As Range
xTitleId = "Deselect Cells"
Set InputRng = Application.Selection
If InputRng.Count <= 1 Then
Set InputRng = Application.InputBox("Range :", xTitleId, InputRng.Address, Type:=8)
End If
Set DeleteRng = Application.InputBox("Delete Range", xTitleId, Type:=8)
For Each rng In InputRng
If Application.Intersect(rng, DeleteRng) Is Nothing Then
If result Is Nothing Then
Set result = rng
Else
Set result = Application.Union(result, rng)
End If
End If
Next
result.Select
End Sub
、あなたが呼び出す、選択を行い、それを使用するにはDeselectCells
(個人用マクロブックに保存され、ショートカットに割り当てることが最善である)マクロやセルを選択するデポップアップに表示されていることを選択:
UnSelectActiveCell
範囲ごとに結合し、次の場合にのみセルをループする場合、高速化できるかどうか疑問に思いますNot Intersect(Area,ActiveCell) Is Nothing
。Intersect
関数が関数よりも非常に遅いため、StrComp
への呼び出しの削減を相殺できない場合は、そうでない場合がありますUnion
。