Home » ExcelVBA Rangeオブジェクト » VBAで複数のセルが選択されているかを判定する

VBAで複数のセルが選択されているかを判定する

動作検証バージョン:64bit Windows 10 Pro + 32bit Excel(バージョン2005 ビルド12827.20336 Microsoft Store)

「excel vba 複数セル 選択 判定」
といった検索で、複数のセル範囲が選択されているかを判定するコードについての記事へのアクセスが、割とあります。残念なことに。

「excel vba 複数セル 選択 判定」
と検索なさった方が求めていたのは、Range.Areasプロパティを使ったコードではないはずです。

[スポンサードリンク]

複数のセルが選択されているか判定するサンプル

複数のセルが選択されているのかを判定するなら、以下のようなSubプロシージャです。

Sub 複数のセルが選択されているかを判定する()
 If Selection.Cells.Count = 1 Then
  MsgBox "1つのセルが選択されています。"
 Else
  MsgBox "複数のセルが選択されています。"
 End If
End Sub

Areas.CountとCells.Count

Areas.Countの場合はセル範囲の数、
Cells.Countの場合はセルの数が取得できます。

Range.Areasプロパティは、セル範囲のひとかたまりを1つのItemとして持つ、コレクションとしてのRangeを返します。

Range.Cellsプロパティは、個々のセルをItemとして持つ、コレクションとしてのRangeを返します。

Selection.Cells.Countではなく、
Selection.Countでも、複数のセルが選択されているかを判定できるはずですが、私はこういうときこそCellsプロパティを入れておきたい派です。

Cells.Countでオーバーフローする場合

最近のExcelの場合、上記のSubプロシージャでは実行時エラーが発生するケースもあります。

その場合、Range.CountLargeプロパティを使ってください。

最終更新日時:2020-07-31 15:07

[スポンサードリンク]

Home » ExcelVBA Rangeオブジェクト » VBAで複数のセルが選択されているかを判定する

「ExcelVBA Rangeオブジェクト」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.