動作検証バージョン: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
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
[スポンサードリンク]
- Newer:Word VBAで表のタイトルを
- Older:PythonでMarkdownの見出し文字列のみを出力する
Home » Excel VBA Rangeオブジェクト » VBAで複数のセルが選択されているかを判定する