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

VBA를 활용한 엑셀 데이터 수정 및 업데이트 방법

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

VBA를 활용한 엑셀 데이터 수정 및 업데이트 방법

엑셀은 많은 데이터를 관리할 때 굉장히 편리한 툴입니다. 하지만 데이터가 많다보면 수작업으로 전부 수정하기에는 한계가 있습니다. 이럴 때 VBA를 활용하여 데이터를 자동으로 수정할 수 있습니다.

이번에는 VBA를 활용하여 엑셀 데이터를 수정하고 업데이트하는 방법을 알아보겠습니다.

 

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

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

portalmaker.backtohome.kr

 

1. VBA란?

VBA는 Visual Basic for Applications의 약어로, 마이크로소프트 오피스 제품군에서 사용하는 매크로 언어입니다. 즉, 엑셀, 워드, 파워포인트 등의 문서에 대해 매크로(자동화된 일련의 작업)을 수행할 수 있는 프로그래밍 언어입니다.


2. VBA를 사용한 데이터 수정 방법

VBA는 엑셀의 모든 기능을 사용할 수 있습니다. 예를 들어 특정 조건에 해당하는 데이터를 찾아서 수정하거나, 데이터를 자동으로 정렬하거나, 여러 엑셀 파일의 데이터를 병합하는 등 다양한 작업을 할 수 있습니다.

2.1. VBA 매크로 Recording을 사용하는 방법

엑셀의 VBA 매크로 Recording 기능을 사용하면, 원하는 기능에 대해 녹음하고 실행할 수 있습니다.

2.1.1. Recording 기능 사용하기

  1. 엑셀 파일을 열고, 개발 탭에서 Visual Basic 편집기를 선택합니다.
  2. 왼쪽에 있는 Project Explorer에서 원하는 엑셀 파일을 선택합니다.
  3. Insert 메뉴에서 Module을 선택하여 새로운 모듈을 추가합니다.
  4. 새 모듈에 작성하고 싶은 코드를 입력합니다.
  5. 개발 탭에서 Record Macro 버튼을 클릭합니다.
  6. Macro Name과 Shortcut key를 정하고 OK 버튼을 클릭합니다.
  7. 수행하고자 하는 작업을 수행합니다.
  8. Record Macro 버튼을 다시 클릭하면 녹음이 종료됩니다.

2.1.2. Recording 결과 수정하기

Recording 기능을 사용할 때, 자동으로 생성되는 코드는 비효율적이며 가독성이 낮습니다. 따라서 작성된 코드를 수정하여 사용하는 것이 좋습니다.

예를 들어, 아래와 같은 코드를 자동 생성되는 코드에서 수정한 코드로 변경할 수 있습니다.

' Recorded result
Sub RecordingMacro()
    ' RecordingMacro Macro
    
    Range("C2").Select
    ActiveCell.FormulaR1C1 = "2"
    Range("C3").Select
    ActiveCell.FormulaR1C1 = "3"
    Range("C4").Select
    ActiveCell.FormulaR1C1 = "4"
End Sub

' Modified code
Sub ModifiedMacro()
    Range("C2:C4").Value = Array(2, 3, 4)
End Sub

2.2. VBA 코드를 직접 작성하는 방법

Recording으로 생성된 코드를 수정하는 것이 어렵거나, 더 복잡한 기능을 구현하고자 할 경우 직접 코드를 작성할 수 있습니다.

2.2.1. VBA 에디터에서 새로운 모듈 생성하기

  1. 엑셀 파일을 열고, 개발 탭에서 Visual Basic 편집기를 선택합니다.
  2. 왼쪽에 있는 Project Explorer에서 원하는 엑셀 파일을 선택합니다.
  3. Insert 메뉴에서 Module을 선택하여 새로운 모듈을 추가합니다.

2.2.2. VBA 코드 작성하기

간단한 예제로, A열에 있는 값이 10보다 크면 B열의 값을 1 증가시키는 코드를 작성해본다.

Sub AdjustBColumn()
    Dim i As Integer

    For i = 1 To Rows.Count
        If Range("A" & i).Value > 10 Then
            Range("B" & i).Value = Range("B" & i).Value + 1
        End If
    Next i
End Sub

위의 코드는 A열에서 하나씩 값을 읽어서 10보다 크면 해당 행의 B열 값을 1 증가시킵니다.

위 예제처럼 VBA 코드를 작성하면 데이터 수정에 있어서 매우 큰 도움이 됩니다. 하지만 데이터가 많을수록 프로그램의 실행 시간이 길어지기 때문에, 가능한 시간을 단축하도록 최적화하는 것이 좋습니다.


3. 결론

이상으로 VBA를 활용한 엑셀 데이터 수정 및 업데이트 방법에 대해 알아보았습니다. VBA를 사용하면 데이터를 보다 효율적으로 관리할 수 있으며, 시간을 단축할 수 있습니다. 매우 복잡한 데이터를 다룰 때는 미리 작성된 코드를 참고함으로써 작업 효율을 높여보세요.



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

행복한 하루 되세요!