ListObject.DataBodyRange 속성
표에서 머리글 행을 제외한 값 범위를 나타내는 Range 개체를 반환하며 읽기 전용입니다.
Syntax
expression.DataBodyRange
expression : ListObject 개체를 나타내는 변수입니다.
예제 1 : 표의 데이터 범위 크기 확인
Sub CheckDataBodyRangeSize()
Dim ws As Worksheet
Dim tbl As ListObject
Dim dataRange As Range
Set ws = ThisWorkbook.Sheets("Books")
Set tbl = ws.ListObjects("Book")
Set dataRange = tbl.DataBodyRange
MsgBox "표의 데이터 범위 크기: " & dataRange.Rows.Count & " 행, " & dataRange.Columns.Count & " 열"
End Sub
예제 2 : 표의 데이터 범위 출력
Sub GetListDataBodyRangeAddress()
' 시트와 표의 이름 지정
Dim sheetName As String
Dim tableName As String
sheetName = "Sheet1"
tableName = "Product"
' 시트 존재 여부 확인
Dim ws As Worksheet
Set ws = GetSheetByName(sheetName)
If ws Is Nothing Then
MsgBox "시트 '" & sheetName & "'이(가) 존재하지 않습니다."
Exit Sub
End If
' 표 찾기
Dim tbl As ListObject
Set tbl = GetTableByName(ws, tableName)
' 표가 있는지 확인 후 주소 출력
If Not tbl Is Nothing Then
MsgBox "ListObject.DataBodyRange 주소: " & tbl.DataBodyRange.Address
Else
MsgBox "표 '" & tableName & "'이(가) '" & sheetName & "' 시트에 존재하지 않습니다."
End If
End Sub
Function GetSheetByName(sheetName As String) As Worksheet
On Error Resume Next
Set GetSheetByName = ThisWorkbook.Sheets(sheetName)
On Error GoTo 0
End Function
Function GetTableByName(ws As Worksheet, tableName As String) As ListObject
On Error Resume Next
Set GetTableByName = ws.ListObjects(tableName)
On Error GoTo 0
End Function
매크로 실행 후
예제 3 : 표 사이즈 조정하기
Sub ResizeTable()
' 시트와 표의 이름 지정
Dim sheetName As String
Dim tableName As String
sheetName = "Sheet1"
tableName = "Product"
' 시트 존재 여부 확인
Dim ws As Worksheet
Set ws = GetSheetByName(sheetName)
If ws Is Nothing Then
MsgBox "시트 '" & sheetName & "'이(가) 존재하지 않습니다."
Exit Sub
End If
' 테이블 찾기
Dim tbl As ListObject
Set tbl = GetTableByName(ws, tableName)
' 테이블이 있는지 확인 후 크기 조정
If Not tbl Is Nothing Then
' 목표 범위의 주소를 지정하여 테이블 크기 조정
Dim targetRange As Range
Set targetRange = ws.Range("A1").Resize(tbl.ListRows.Count + 10, tbl.ListColumns.Count + 5)
tbl.Resize targetRange
MsgBox "테이블의 크기가 조정되었습니다."
Else
MsgBox "테이블 '" & tableName & "'이(가) '" & sheetName & "' 시트에 존재하지 않습니다."
End If
End Sub
Function GetSheetByName(sheetName As String) As Worksheet
On Error Resume Next
Set GetSheetByName = ThisWorkbook.Sheets(sheetName)
On Error GoTo 0
End Function
Function GetTableByName(ws As Worksheet, tableName As String) As ListObject
On Error Resume Next
Set GetTableByName = ws.ListObjects(tableName)
On Error GoTo 0
End Function
'ListObject object' 카테고리의 다른 글
ListObject.ShowAutoFilter property (0) | 2024.03.03 |
---|---|
ListObject.ListRows property (0) | 2024.03.03 |
ListObject.ListColumns property (0) | 2024.03.03 |
ListObject.HeaderRowRange property (0) | 2024.03.03 |
ListObject.AutoFilter property (0) | 2024.03.02 |