← コード一覧へ戻る
基本セル・範囲

非連続のセルが選択されているかどうかを調べる

現在のセル選択が、離れた複数の範囲から成るかを調べます。

実行前に確認

  • この例は現在操作中のExcelの選択状態を調べます。セルの値や書式を書き換えません。
  • 図形やグラフの選択は対象外です。現在操作中のブックで判定します。

1サンプルコード

Option Explicit

Sub Example1060()
    If TypeName(Selection) <> "Range" Then
        MsgBox "まずセルを選択してください。": Exit Sub
    End If
    MsgBox "非連続の範囲: " & (Selection.Areas.Count > 1)
End Sub

図で見る操作の流れ

イメージ図

概念図:離れたセル範囲がいくつ選択されているかを判定します。

  1. 手動:選択

    Ctrlを押しながらA1とC3を選ぶ

  2. マクロ:判定

    セル選択か確認し、Areas.Count > 1を調べる

  3. 結果

    離れた2範囲なら「非連続の範囲: True」

連続した1範囲ならFalse。図形などを選んでいる場合は案内して終了し、セルは変更しません。

コードの処理を説明する模式図です。実際の画面や実行結果を撮影したものではありません。

使い方・実行手順を確認する4つの手順で、コードの使い方を確認できます
  1. 1

    練習用ブックを .xlsm 形式で保存し、Sheet1 という名前のシートを用意します。Ctrlキーを押しながらA1とC3を選択して実行します。

  2. 2

    Alt+F11でVBEを開き、[挿入]→[標準モジュール]に、この例だけを貼り付けます。

  3. 3

    コード内の参照先や判定条件を必要に応じて変更します。実行してもセルの値や書式は変わりません。Excelに戻り、Alt+F8で Example1060 を選んで実行します。

  4. 4

    2か所以上の離れた選択ならTrueになります。

使っている機能の公式ドキュメント(Microsoft Learn)