HOME > 即効テクニック > Excel VBA > セル操作関連のテクニック > 全てのリスト範囲を取得する

即効テクニック

セル操作関連のテクニック

全てのリスト範囲を取得する

(Excel 2000/2002/2003)
●概要●
Excel2003からは、リスト機能が追加されました。リストはListObjectオブジェクトとして扱うことができます。ListObjectのRangeプロパティを利用してワークシート上のリストを扱うことができます。

 構文 オブジェクト.Range
 設定項目    内容
 オブジェクト  ListObjectオブジェクト

次のサンプルは、「Sheet1」ワークシートにある全てのリストのセル範囲をイミディエイトウィンドウに表示します。まず、ListObjectsコレクションへの参照を取得します。Countプロパティを利用してListObjectオブジェクトが存在を確認し、存在しない場合プロシージャを終了します。ListObjectオブジェクトが存在する場合は、ListObjectのRangeプロパティでセル範囲を取得し、取得したRangeオブジェクトのAddressプロパティでそのアドレスを取得しイミディエイトウィンドウに表示します。

●サンプル●
Sub Sample()
    Dim TempLists As ListObjects
    Dim TempList As ListObject
    
    Set TempLists = Worksheets("Sheet1").ListObjects
    
    If TempLists.Count = 0 Then Exit Sub
    
    For Each TempList In TempLists
        Debug.Print TempList.Range.Address
    Next
    
    Set TempLists = Nothing
End Sub