Computer >> 컴퓨터 >  >> 소프트웨어 >> Office

Excel VBA로 표(ListObject) 다루기: 실무에 바로 쓰는 9가지 핵심 방법

표(Table)는 Excel에서 VBA를 활용할 때 가장 중요하고 널리 사용되는 개체 중 하나입니다. 이 글에서는 VBA를 사용해 Excel 표를 생성, 편집, 삭제하는 등 다양하게 활용할 수 있는 9가지 방법을 코드 예제와 함께 자세히 소개합니다.

VBA로 Excel 표를 활용하는 9가지 방법

표란 첫 번째 행에 머리글(헤더)이 포함된 특수한 형태의 데이터 집합을 말합니다.

Excel VBA로 표(ListObject) 다루기: 실무에 바로 쓰는 9가지 핵심 방법

VBA에서 표는 ListObject라는 개체로 분류됩니다. 아래에서 Excel 표를 VBA로 조작하는 다양한 방법을 하나씩 살펴보겠습니다.

1. VBA로 표 만들기

먼저 VBA를 사용해 Excel에서 표를 생성하는 방법부터 알아보겠습니다.

표를 만들려면 우선 해당 표를 ListObject 형식으로 선언해야 합니다.

그다음 원하는 범위에 표를 삽입하면 됩니다.

Dim Table1 as ListObject

Set Table1 = ActiveSheet.ListObjects.Add(xlSrcRange, Range("B4:D13"), , xlYes)

[여기서 Table1은 VBA 내에서 사용할 표의 이름이며, B4:D13은 활성 워크시트에서 표를 만들고 싶은 범위입니다. 이 값들은 필요에 따라 자유롭게 변경할 수 있습니다.]

Excel VBA로 표(ListObject) 다루기: 실무에 바로 쓰는 9가지 핵심 방법

코드를 실행하면 활성 워크시트의 B4:D13 범위에 표가 생성됩니다.

Excel VBA로 표(ListObject) 다루기: 실무에 바로 쓰는 9가지 핵심 방법

생성된 표의 이름도 원하는 대로 변경할 수 있습니다.

Table1.Name = "MyTable"

Excel VBA로 표(ListObject) 다루기: 실무에 바로 쓰는 9가지 핵심 방법

실행하면 표 이름이 MyTable로 변경됩니다.

Excel VBA로 표(ListObject) 다루기: 실무에 바로 쓰는 9가지 핵심 방법

추가 참고: 단축키로 Excel 표 만드는 방법

2. VBA로 기존 표 참조하기

앞서 VBA로 표를 만드는 방법을 배웠습니다. 이번에는 이미 만들어져 있는 표를 참조하는 방법을 알아보겠습니다.

기존 표를 참조하려면 역시 표를 ListObject 형식으로 선언한 뒤, Excel에 등록되어 있는 표 이름으로 지정하면 됩니다.

Dim Table1 As ListObject

Set Table1 = ActiveSheet.ListObjects("MyTable")

Excel VBA로 표(ListObject) 다루기: 실무에 바로 쓰는 9가지 핵심 방법

이렇게 하면 Excel의 “MyTable”이라는 표를 Table1이라는 이름으로 참조하게 됩니다.

Excel VBA로 표(ListObject) 다루기: 실무에 바로 쓰는 9가지 핵심 방법

추가 참고: Excel 표 참조 활용법

3. VBA로 표에 값 입력하기

표 안에 값을 입력하려면 먼저 해당 표를 참조해야 합니다.

그다음 VBA의 Range.Cells 속성을 사용해 특정 셀에 값을 넣으면 됩니다.

Dim Table1 As ListObject

Set Table1 = ActiveSheet.ListObjects("MyTable")

Table1.Range.Cells(2, 1) = "A Tale of Two Cities"

Excel VBA로 표(ListObject) 다루기: 실무에 바로 쓰는 9가지 핵심 방법

코드를 실행하면 활성 워크시트의 MyTable 표에서 2행 1열 위치에 문자열 “A Tale of Two Cities”가 입력됩니다.

Excel VBA로 표(ListObject) 다루기: 실무에 바로 쓰는 9가지 핵심 방법

4. VBA로 표에 행과 열 삽입하기

VBA로 표에 행이나 열을 추가하려면 먼저 표를 참조한 후 작업을 진행합니다.

새 행을 추가하려면 ListRows.Add 속성을 사용합니다.

Dim Table1 As ListObject

Set Table1 = ActiveSheet.ListObjects("MyTable")

Table1.ListRows.Add

Excel VBA로 표(ListObject) 다루기: 실무에 바로 쓰는 9가지 핵심 방법

이 코드는 MyTable 표의 맨 마지막에 새 행을 추가합니다.

Excel VBA로 표(ListObject) 다루기: 실무에 바로 쓰는 9가지 핵심 방법

반대로 새 열을 추가하려면 ListColumns.Add 속성을 사용합니다.

Dim Table1 As ListObject

Set Table1 = ActiveSheet.ListObjects("MyTable")

Table1.ListColumns.Add

Excel VBA로 표(ListObject) 다루기: 실무에 바로 쓰는 9가지 핵심 방법

이 코드는 MyTable 표의 오른쪽 끝에 새 열을 추가합니다.

Excel VBA로 표(ListObject) 다루기: 실무에 바로 쓰는 9가지 핵심 방법

특정 위치에 행이나 열을 삽입하고 싶다면 ListRows.Add 또는 ListColumns.Add 속성 안에 위치를 숫자로 지정하면 됩니다.

Dim Table1 As ListObject

Set Table1 = ActiveSheet.ListObjects("MyTable")

Table1.ListRows.Add (4)

Excel VBA로 표(ListObject) 다루기: 실무에 바로 쓰는 9가지 핵심 방법

이 코드는 MyTable 표의 4번째 행 자리에 새 행을 삽입합니다.

Excel VBA로 표(ListObject) 다루기: 실무에 바로 쓰는 9가지 핵심 방법

열을 삽입할 때도 동일한 방식을 적용하면 됩니다.

추가 참고: Excel 표에서 행과 열 삽입 또는 삭제하기

5. VBA로 표 데이터 읽어오기

표에서 데이터를 읽어오려면 VBA의 Range.Cells 속성을 사용합니다.

Dim Table1 As ListObject

Set Table1 = ActiveSheet.ListObjects("MyTable")

MsgBox Table1.Range.Cells(3, 1)

Excel VBA로 표(ListObject) 다루기: 실무에 바로 쓰는 9가지 핵심 방법

코드를 실행하면 MyTable 표의 3행 1열에 있는 값이 메시지 상자로 표시됩니다. 여기서는 The Forty Rules of Love라는 값이 출력됩니다.

Excel VBA로 표(ListObject) 다루기: 실무에 바로 쓰는 9가지 핵심 방법

함께 보면 좋은 글

  • VBA로 Excel 피벗 테이블 새로 고치기 (예제 5가지)
  • VBA로 모든 피벗 테이블 한 번에 새로 고치기 (4가지 방법)
  • Excel 피벗 테이블 편집하기 (5가지 방법)
  • 피벗 테이블 범위 업데이트하기 (5가지 방법)

6. VBA로 표의 행 또는 열 반복 처리하기

VBA로 표의 각 행을 순회하려면 ListRows.Count 속성을 활용합니다.

Dim Table1 As ListObject

Set Table1 = ActiveSheet.ListObjects("MyTable")


For i = 1 To Table1.ListRows.Count

    Table1.ListRows(i).Range.Select

Next i

Excel VBA로 표(ListObject) 다루기: 실무에 바로 쓰는 9가지 핵심 방법

이 코드는 표의 각 행을 처음부터 끝까지 반복하면서 하나씩 선택합니다.

마찬가지 방법으로 각 열을 순회하려면 ListColumns.Count 속성을 사용하면 됩니다.

7. VBA로 표에서 특정 값 찾기

표의 행이나 열에서 특정 값을 검색하려면 VBA의 DataBodyRange.Rows.Find 또는 DataBodyRange.Columns.Find 속성을 사용합니다.

Dim Table1 As ListObject

Set Table1 = ActiveSheet.ListObjects("MyTable")

Set Value = Table1.DataBodyRange.Columns(1).Find("Mother", LookAt:=xlWhole)

MsgBox Value

Excel VBA로 표(ListObject) 다루기: 실무에 바로 쓰는 9가지 핵심 방법

이 코드는 MyTable 표의 1번째 열에서 “Mother”라는 값을 찾아, 검색 결과를 반환합니다.

Excel VBA로 표(ListObject) 다루기: 실무에 바로 쓰는 9가지 핵심 방법

8. VBA로 표 크기 조정하기

표의 크기를 변경하려면 먼저 표가 조정될 새 범위(Range)를 설정해야 합니다.

그런 다음 해당 범위에 맞게 표 크기를 조정하면 됩니다.

Dim Table1 As ListObject

Set Table1 = ActiveSheet.ListObjects("MyTable")

 
Dim Rng As Range

Set Rng = Range("B4:C8")

 
Table1.Resize Rng

Excel VBA로 표(ListObject) 다루기: 실무에 바로 쓰는 9가지 핵심 방법

이 코드는 먼저 범위를 B4:C8로 설정한 뒤, MyTable 표의 크기를 그 범위에 맞게 조정합니다.

Excel VBA로 표(ListObject) 다루기: 실무에 바로 쓰는 9가지 핵심 방법

9. VBA로 표 삭제하기

VBA로 표를 삭제하려면 Delete 속성을 사용합니다.

Dim Table1 As ListObject

Set Table1 = ActiveSheet.ListObjects("MyTable")

Table1.Delete

Excel VBA로 표(ListObject) 다루기: 실무에 바로 쓰는 9가지 핵심 방법

이 코드를 실행하면 활성 워크시트에서 MyTable 표가 삭제됩니다.

알아두면 좋은 팁

표는 VBA에서 ListObject 개체입니다. 하지만 일반적인 Range 개체처럼 다루고 싶다면 Table.Range 속성을 사용하세요. 이 속성은 표를 Range 개체로 반환하기 때문에, VBA의 Range 개체가 제공하는 모든 속성과 메서드를 그대로 활용할 수 있습니다.

마무리

지금까지 소개한 방법들을 활용하면 VBA에서 표를 자유자재로 다룰 수 있습니다. 궁금한 점이 있다면 언제든지 질문해 주세요.

함께 읽으면 좋은 글

  • Excel 피벗 테이블 자동 새로 고침 설정법 (2가지 방법)
  • Excel 피벗 테이블에서 열 그룹화하기 (2가지 방법)
  • 피벗 테이블 사용자 지정 그룹화: 3가지 기준
  • Excel 표에서 수식 효과적으로 활용하기 (예제 4가지)