関数・メソッド

アクティブセルがテーブル内にあるか確認する【ListObject.Activeプロパティ】【ExcelVBA】

アクティブセルがどこにあるかの判定

「アクティブセルがテーブル内にあるかどうかで挙動を変えたい」といった場合、
アクティブセルがテーブルの内外どちらにあるか判定しなければなりません。
ListObject.Activeプロパティを使えば、アクティブセルがどちらにあるか判定することができます。

構文
ListObject.Active

ListObjectListObjectオブジェクトを表す変数です。
Activeアクティブセルがテーブル内にある場合、True です。

 

アクティブセルがテーブル内外どちらにあるか判定するサンプルコード

Public Sub Sample()
  'テーブルを作成する
  Dim Tables As ListObject
  Set Tables = ActiveSheet.ListObjects.Add(SourceType:=xlSrcRange, _
                                         Source:=Range("A1:D4"), _
                                         XlListObjectHasHeaders:=xlNo)
  'A6セルを選択する
  Range("A6").Select
 
 '■アクティブセルがどこにあるか判定する
  '判定結果によって処理を分岐させる
  With ActiveSheet
    If .ListObjects(1).Active Then
        Debug.Print "アクティブセルはテーブル内です。"
    Else
        Debug.Print "アクティブセルはテーブル外です。"
    End If
  End With

End Sub

 

注意点

  • 古いバージョンだと、正常に動かない可能性があります。
  • テーブルの指定はインデックス番号だけでなく、テーブル名でも可能です。

 

関連記事

コメント

タイトルとURLをコピーしました