アクティブセルがどこにあるかの判定
「アクティブセルがテーブル内にあるかどうかで挙動を変えたい」といった場合、
アクティブセルがテーブルの内外どちらにあるか判定しなければなりません。
ListObject.Activeプロパティを使えば、アクティブセルがどちらにあるか判定することができます。
構文
ListObject.Active
| ListObject | ListObjectオブジェクトを表す変数です。 |
| 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
注意点
- 古いバージョンだと、正常に動かない可能性があります。
- テーブルの指定はインデックス番号だけでなく、テーブル名でも可能です。



コメント