「excel vba 複数セル 選択 判定」
といった検索で、複数のセル範囲が選択されているかを判定するコードについての記事へのアクセスが、割とあります。残念なことに。
「excel vba 複数セル 選択 判定」
と検索なさった方が求めていたのは、Range.Areasプロパティを使ったコードではないはずです。
複数のセルが選択されているか判定するサンプル
複数のセルが選択されているのかを判定するなら、以下のような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で複数のセルが選択されているかを判定する
- Newer:Word VBAで表のタイトルを
- Older:PythonでMarkdownの見出し文字列のみを出力する