キーボードショートカットを使用してExcelセルの選択を解除する方法


14

キーボードショートカットCtrl+ Click を使用して、複数のExcelセルを(連続的または非連続的に)選択できます。

これらの以前に選択したセルの1つ以上の選択を解除するにはどうすればよいですか?

回答:


5

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

1
UnSelectActiveCell範囲ごとに結合し、次の場合にのみセルをループする場合、高速化できるかどうか疑問に思いますNot Intersect(Area,ActiveCell) Is NothingIntersect関数が関数よりも非常に遅いため、StrCompへの呼び出しの削減を相殺できない場合は、そうでない場合がありますUnion
エンジニアトースト

1
神のExcelはとても古いですlol
codyc4321

これはまだ事実ですか?私は自分の人生でどのようにdeselect細胞に到達するかを知ることができません。それは絶対にばかげています!2列ごとに選択していますが、間違えた場合は最初からやり直す必要がありますか?それは非常識です!
-pookie

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(個人用マクロブックに保存され、ショートカットに割り当てることが最善である)マクロやセルを選択するポップアップに表示されていることを選択:

セルの選択を解除


素晴らしい発見、素晴らしい答え。
ブルギ

1

誤って選択したセルをCTRLで選択解除できるようになりました。これは、Office 365または最近のバージョンの新しい組み込み機能です。最後に!

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