非連続のセルが選択されているかどうかを調べる
現在のセル選択が、離れた複数の範囲から成るかを調べます。
実行前に確認
- この例は現在操作中のExcelの選択状態を調べます。セルの値や書式を書き換えません。
- 図形やグラフの選択は対象外です。現在操作中のブックで判定します。
1サンプルコード
Option Explicit
Sub Example1060()
If TypeName(Selection) <> "Range" Then
MsgBox "まずセルを選択してください。": Exit Sub
End If
MsgBox "非連続の範囲: " & (Selection.Areas.Count > 1)
End Sub図で見る操作の流れ
イメージ図概念図:離れたセル範囲がいくつ選択されているかを判定します。
手動:選択
Ctrlを押しながらA1とC3を選ぶ
マクロ:判定
セル選択か確認し、Areas.Count > 1を調べる
結果
離れた2範囲なら「非連続の範囲: True」
連続した1範囲ならFalse。図形などを選んでいる場合は案内して終了し、セルは変更しません。
コードの処理を説明する模式図です。実際の画面や実行結果を撮影したものではありません。
使い方・実行手順を確認する4つの手順で、コードの使い方を確認できます
- 1
練習用ブックを .xlsm 形式で保存し、Sheet1 という名前のシートを用意します。Ctrlキーを押しながらA1とC3を選択して実行します。
- 2
Alt+F11でVBEを開き、[挿入]→[標準モジュール]に、この例だけを貼り付けます。
- 3
コード内の参照先や判定条件を必要に応じて変更します。実行してもセルの値や書式は変わりません。Excelに戻り、Alt+F8で Example1060 を選んで実行します。
- 4
2か所以上の離れた選択ならTrueになります。