본문 바로가기
■ 칼퇴를 위한 VBA : 사례/- VBA for 엑셀

엑셀 VBA를 이용한 데이터 정렬 자동화하기

by 포탈메이커 2023. 6. 27.

엑셀 VBA를 이용한 데이터 정렬 자동화하기

Excel은 데이터 처리 및 분석에 있어 매우 효율적인 툴입니다. 그러나 작업이 복잡하고 데이터 양이 많을수록 이용이 불편해집니다. 이때 VBA를 활용하여 자동화를 구현하면 효율적으로 작업할 수 있습니다.

VBA는 Excel 내에서 스크립트를 작성하는 언어입니다.

이를 이용하여 데이터 정렬을 자동화하는 방법에 대해 알아보겠습니다.

 

칼퇴키트, 업무용 도구모음

칼퇴를 위해 꼭 필요한 도구 모음을 제공합니다. 당장의 업무에 필요한 순간 사용하는 가벼운 메모장, 계산기, 변환기 등

portalmaker.backtohome.kr

 

1. 데이터 정렬

Excel에서 데이터 정렬 작업은 매우 간단합니다. 데이터를 선택한 후 "정렬" 버튼을 클릭하면 간편하게 데이터 정렬이 가능합니다. 그러나 많은 양의 데이터를 정렬할 때는 이 방법이 번거로울 수 있습니다.

이때 VBA 코드를 이용하여 자동화된 데이터 정렬이 가능합니다. 아래는 간단한 예제 코드입니다.

Sub SortData()
    Range("A2").Select ' Select the first data cell
    Range(Selection, Selection.End(xlDown)).Select ' Select until the last data cell
    
    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear ' Clear previous sorting conditions
    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add2 Key:=Range("A2"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal ' Set sorting parameters
    
    With ActiveWorkbook.Worksheets("Sheet1").Sort ' Apply the sorted result
        .SetRange Range("A1:B")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub

위 코드는 Sheet1에서 A2부터 마지막 데이터 셀까지 선택한 후 열 A을 기준으로 오름차순 정렬합니다. 정렬된 결과는 A1부터 B열까지 적용됩니다.

이를 적용하여 자동화된 데이터 정렬을 구현할 수 있습니다. 그러나 한 두번의 정렬 작업만 필요할 경우에는 코드 작성이 번거로울 수 있습니다.

이때는 마크다운 확장기능으로 나눠서 진행하면 됩니다.


2. 자동화

자동화를 위해서는 Sheet1에서 구현하고 싶은 정렬 방법에 대해 정확히 설정할 필요가 있습니다. 작업을 반복하고, 매크로를 실행하는 방법으로 구현할 수 있습니다.

2.1. 매크로 녹화

Excel 매크로 녹화 기능을 이용하여 작업을 자동화할 수 있습니다. 아래는 자동화된 데이터 정렬 예제입니다.

1. 정렬하고자 하는 시트를 선택합니다. 
2. 녹화 버튼(X)을 클릭합니다. 
3. 순서에 따라 데이터 정렬 작업을 수행합니다. 
4. 녹화 버튼을 다시 클릭하여 녹화를 종료합니다.

매크로 녹화 예제는 아래와 같습니다.

1. 정렬하고자 하는 시트를 선택합니다. 
2. 녹화 버튼을 클릭합니다. 
3. "데이터" -> "정렬 및 필터링" -> "커스텀 정렬"을 클릭합니다. 
4. 정렬 기준을 선택합니다. 
5. "확인" 버튼을 클릭합니다. 
6. 데이터 정렬이 완료될 때까지 대기합니다. 
7. 녹화 버튼을 다시 클릭하여 녹화를 종료합니다.

2.2. VBA 코드 편집

매크로 녹화 결과를 이용하여 VBA 코드를 편집하여 코드의 가독성을 높일 수 있습니다. 아래는 예제 코드입니다.

Sub SortDataSheet1()
    ActiveSheet.Sort.SortFields.Clear
    ActiveSheet.Sort.SortFields.Add Key:=Range("A2"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    
    With ActiveSheet.Sort
        .SetRange Range("A2:B4")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub

위 코드는 Sheet1에서 A2부터 B4 데이터를 기준으로 오름차순 정렬합니다. 코드를 통해 정확한 기준을 설정할 수 있기 때문에 더욱 정확한 자동화가 가능해집니다.


3. 마치며

Excel의 VBA를 이용하여 데이터 정렬 자동화를 구현해봤습니다. 정렬뿐만 아니라 Excel을 활용하여 다양한 자동화 기능을 구현할 수 있기 때문에, 개인이나 기업에서 업무효율을 높이는 데에 많은 도움이 될 수 있습니다. 따라서 VBA의 기본 문법을 익혀 더욱 효율적으로 작업할 수 있도록 노력해보시길 바랍니다.



포스팅이 도움이 되셨다면 구독, 공감, 댓글 부탁드려요!

행복한 하루 되세요!