選択したセルの数を数える

選択したセルの数を数える

セルの内容に関係なく、選択したセルの数をカウントするにはどうすればよいですか?

ユースケースは 2 つあります。今はユースケース 2 が必要です。

  1. 1つまたは複数の選択を行うときに、セルの数を知りたいのですが、
  2. 複数選択を使用して、正確に N 個のセルを選択したい。数 (画面のどこかに表示されているはず) が N に達するまで、選択とサイズの変更を続けます。

1 については回避策があります。テキストを含む単一のセルを選択し、コピーして (アニメーションの境界線が付くように)、選択を行い、貼り付けを押して、ステータス バーのカウントを確認します。

2 については、回避策 1 を何十回も繰​​り返してから元に戻すボタンを押さなくても済む回避策はわかりません。

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

答え1

ポイント 1 に対処するには、この VBa を使用できます。問題は、この詳細をどのように表示するかを説明していないことです。そのため、これをメッセージ ボックスとして追加しました。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim totalCells As Long
totalCells = Selection.Cells.Count

MsgBox (totalCells)
End Sub

VBaをSheet1に追加しました。MS Office に VBA を追加するにはどうすればよいですか?

オーバーフロー例外が発生するため、すべてのセルを選択しないようにしてください。

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

問題はポップアップが毎回発生することです。交換することをお勧めします。

プライベートサブ Worksheet_SelectionChange(ByVal Target As Range)

MsgBox (totalCells)

Range("M1").Value = totalCells ' CHANGE THE RANGE TO THE CELL YOU WANT

答え2

あなたが望むことを実現する唯一の方法は、VBA を使用することだと私は考えています。

これをセルに入力する関数が必要な場合は、次のようなものが機能します。

Public Function cellcount()
Application.Volatile
cellcount = Selection.Cells.count
End Function

選択を変更するたびに F9 キーを押して関数を再実行し、回答を得ることができます。

答え3

みなさん、本当にありがとうございます。上記の情報は数年前のものかもしれませんが、まさに今私が必要としていたものです。他の人のアイデアのきっかけになればと思い、私が自分のニーズに合わせて上記の情報を微調整しました。(もちろん、私たちのコストは実際には 1 時間あたり 2 ドルではありません。でも、お分かりいただけたと思います。) ありがとうございます!

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    Const HOURS As Integer = 10        ' hours per cell
    Const COST As Integer = 2 * HOURS  ' dollars per cell
    Const SPACER As String = "   "

    Dim numCells As Long

    numCells = Selection.Cells.Count

    If numCells < 2 Then

        Application.StatusBar = False

    Else

        On Error Resume Next ' in case the selection is so large it causes an overflow error
        Application.StatusBar = "Cells: " & numCells _
                     & SPACER & "Hours: " & (numCells * HOURS) _
                     & SPACER & "Cost: " & FormatCurrency(numCells * COST, 0)

    End If

End Sub

関連情報