본문 바로가기

엑셀/VBA

엑셀 데이터를 Table로 사용하는 것을 VBA로 구현 - CurrentRegion

반응형

이전 글에서 엑셀에서 데이터를 작성하여 표로 만들어 데이터 관리를 하는 것을 알아보았었습니다. 표로 관리를 하면 데이터를 추가하거나 삭제하였을 때 함수 등으로 연결된 데이터가 자동으로 업그레이드되는 것이 가능하였습니다. 또한, 표의 임의의 셀을 클릭한 상태에서 Ctrl + A를 클릭하면 데이터 전체가 선택되는 것도 가능하였습니다. 이러한 기능을 VBA에서 실행하려면 CurrentRegion을 사용하여 같은 결과를 얻을 수 있습니다.

 

엑셀에서 관리하기 쉬운 표 기능 사용하기

 

엑셀에서 관리하기 쉬운 표 기능 사용하기

1. 엑셀에서 제공하는 표 기능 사용하기  엑셀에서는 데이터를 보다 편하게 표로 만들고 그 데이터를 쉽게 정렬 및 필터링하며 서식 지정을 할 수 있습니다. 앞에서 알아본 표 형식 3가지 중에서

mr-johndoe.tistory.com

 

VBA 셀(또는 범위) 지정 - Range, Cells

 

VBA 셀(또는 범위) 지정 - Range, Cells

이전 글에서 Range의 속성과 메서드에 대해서 확인해 보았습니다. 그런데, VBA에서 셀 또는 셀 범위를 지정할 때 Range 뿐만 아니라 Cells라는 Worksheet의 속성도 있습니다. 이번에는 Cells라는 속성에 대

mr-johndoe.tistory.com

 

 

 

 

 

1. CurrentRegion

 CurrentRegion은 개체의 속성입니다. 이 속성을 이용하면 일련의 데이터를 편리하게 관리할 수 있습니다.

 

사용 방법은 다음과 같습니다.

 

   Set 변수 = 개체.CurrentRegion

 

변수는 Range 형태로 선언을 하고 CurrentRegion은 개체의 속성으로 사용합니다.

 

2. 예제를 통해 CurrentRegion 확인

 엑셀을 여시고 엑셀 시트에 [그림 1]과 같이 작성을 하고 표 전체를 선택하고 "판매량"으로 이름 정의를 합니다. VBE 창을 열고 Module을 생성합니다.

 

데이터_범위_지정_CurrentRegion
[그림 1] 데이터 범위 지정 - CurrentRegion

 

 

 

생성한 Module 창에 다음과 같이 코드를 작성합니다.

 

   Public Sub 데이터관리()

      Dim data As Range

      Dim col As Integer

      Dim row As Integer

      Dim i As Integer

 

      Set data = Range("판매량").CurrentRegion

 

      col = data.Columns.Count

      row = data.Rows.Count

 

      Range("J1") = "행 개수 : "

      Range("K1") = row

 

      Range("J2") = "열 개수 : "

      Range("K2") = col

 

      data(2, 2).Select

 

      For i = 2 To row

         ActiveCell.Offset(i - 2, col - 1) = "= Sum(" & Range(data(i, 2), data(i, col)).Address(0, 0) & ")"

      Next

   End Sub

 

Set data = Range("판매량").CurrentRegion

      => 판매량으로 이름 정의한 데이터 범위를 data란 이름으로 지정하였습니다.

 

col = data.Columns.Count

      => data의 열 개수를 확인하여 변수 col에 입력합니다.

 

row = data.Rows.Count

      => data의 행 개수를 확인하여 변수 row에 입력합니다.

 

data(2, 2).Select

      => data의 2행 2열의 셀을 선택합니다. (셀 주소 C3 선택)

 

ActiveCell.Offset(i - 2, col - 1) = "= Sum(" & Range(data(i, 2), data(i, col)).Address(0, 0) & ")"

      => 직원의 판매 수량 합계를 구하기 위해 data의 맨 끝 열 다음에 Sum 함수 식을 입력합니다.

 

위의 코드를 실행하시면 각 직원의 판매 수량 합계가 판매량으로 이름 정의한 범위 끝 열 다음에 합계가 계산되는 것을 보실 수 있습니다.

 

 

반응형