본문 바로가기

엑셀

엑셀 VBA 특정 단어 제외 데이터 삭제 자동화 (매크로 코드 포함)

반응형

 

 

데이터 분석, 늪에 빠진 것 같나요? 😫 걱정 마세요! 엑셀 VBA의 마법으로 탈출할 수 있습니다! ✨ 특히 특정 단어를 제외한 데이터 삭제, 매번 수작업으로 하기엔 너무 지치죠? 😩 이제 VBA 매크로를 사용하여 시간도 절약하고 정확도도 높여보세요! 🚀 "원투원" 키워드를 예시로, 실제 활용 가능한 코드와 팁까지 아낌없이 공개합니다! 😉 자, 이제 엑셀 마법사가 되어볼까요?

VBA 매크로: 데이터 정리의 마법 지팡이 ✨

방대한 데이터 속에서 원하는 정보만 쏙쏙! 골라내는 마법, VBA 매크로가 함께합니다. 🤩 특정 조건에 맞는 데이터만 남기고 나머지는 싹! 지워주는 마법같은 기능! 수작업으로 하면 오류 투성이에 시간 낭비까지... 😭 하지만 VBA를 활용하면? 정확도는 UP! 시간은 DOWN! 효율은 200% 상승! 💪 게다가 자동화로 편리함까지 덤으로 얻을 수 있답니다.

VBA 매크로 심층 분석: 코드 해부부터 활용팁까지!

아래 코드는 "원투원"이라는 단어가 없는 행을 삭제하는 VBA 매크로입니다. 마치 수술처럼 정교하게 데이터를 다루는 코드, 하나하나 해부해 볼까요? 🧐

Sub DeleteRowsExceptKeyword()

    Dim targetSheet As Worksheet
    Dim lastRow As Long
    Dim i As Long
    Dim targetKeyword As String

    ' 작업 대상 시트 설정 (현재 활성 시트)
    Set targetSheet = ActiveSheet

    ' 삭제 기준 키워드 설정
    targetKeyword = "원투원"

    ' 데이터가 있는 마지막 행 찾기 (A열 기준)
    lastRow = targetSheet.Cells(targetSheet.Rows.Count, "A").End(xlUp).Row

    ' 삭제 시 인덱스 오류 방지를 위해 역순으로 반복
    For i = lastRow To 1 Step -1

        ' A열 i번째 행의 값 확인 (대소문자 구분)
        If InStr(1, targetSheet.Cells(i, "A").Value, targetKeyword, vbBinaryCompare) = 0 Then
            ' 키워드가 없으면 행 전체 삭제!
            targetSheet.Rows(i).EntireRow.Delete
        End If

    Next i

    ' 작업 완료 메시지 (선택)
    MsgBox "특정 단어를 제외한 데이터 삭제 완료! 😊", vbInformation

End Sub

1. 변수 선언: 변수는 데이터를 담는 그릇과 같죠! 🥣 Dim으로 targetSheet, lastRow, i, targetKeyword 등 변수를 선언하고, 각각의 역할에 맞는 이름을 붙여줍니다. 이렇게 하면 코드가 훨씬 읽기 쉬워져요!

2. 시트 및 키워드 설정: 어떤 시트에서, 어떤 키워드를 기준으로 작업할지 정해줍니다. 마치 요리 레시피처럼 👩‍🍳 targetSheet에는 현재 활성화된 시트를, targetKeyword에는 "원투원"을 넣어줍니다. 다른 시트나 키워드로 작업하려면? 당연히 바꿔주면 되죠! 😉

3. 마지막 행 찾기: 데이터가 끝나는 지점을 알아야겠죠? 🗺️ lastRow 변수에 A열의 마지막 행 번호를 저장합니다. 다른 열을 기준으로 하고 싶다면 "A"를 해당 열의 알파벳으로 바꿔주세요!

4. 역순 반복: 데이터를 삭제할 땐 꼭! 역순으로 처리해야 합니다. 🧹 For i = lastRow To 1 Step -1은 마지막 행부터 첫 번째 행까지 거꾸로 올라가면서 작업을 수행합니다. 순서대로 삭제하면 행 번호가 꼬여서 원치 않는 결과가 나올 수 있어요! 😱

5. 조건부 삭제: InStr 함수는 마치 돋보기처럼 🔎 셀 안에 특정 문자열이 있는지 찾아줍니다. vbBinaryCompare는 대소문자를 구분해서 찾는 옵션! 만약 대소문자 구분 없이 찾으려면 vbTextCompare를 사용하세요. 키워드가 없으면 InStr 함수는 0을 반환하고, 이때 targetSheet.Rows(i).EntireRow.Delete 코드가 실행되어 해당 행이 삭제됩니다! 💥

6. 완료 메시지: 모든 작업이 끝나면 MsgBox 함수가 짠! 하고 나타나 "작업 완료!" 메시지를 보여줍니다. 필요 없으면 주석 처리하거나 삭제해도 괜찮아요!

VBA 매크로 활용팁: 나만의 맞춤 마법 만들기 🧙‍♂️

기본 코드만으로도 충분히 강력하지만, 조금만 응용하면 더욱 다양한 마법을 부릴 수 있습니다! ✨

  • 여러 키워드: 여러 키워드를 배열에 저장하고 반복문으로 처리하면 여러 키워드를 한 번에! 삭제할 수 있습니다. 마치 마법의 빗자루처럼 🧹 싹싹!
  • 다른 열 검색: A열 말고 다른 열을 기준으로? 당연히 가능하죠! Cells(i, "열")에서 "열" 부분을 원하는 열의 알파벳으로 바꿔주면 됩니다.
  • 다양한 조건: InStr 함수 외에도 다른 함수나 연산자를 활용하여 삭제 조건을 자유롭게 설정할 수 있습니다. 마치 마법의 물약처럼 🧪 원하는 조건을 넣어보세요!
  • 오류 처리: 예상치 못한 오류는 언제나 발생할 수 있죠. 🙈 On Error GoTo 문으로 오류 처리 코드를 추가하면 예외 상황에도 당황하지 않고! 안전하게! 작업을 마무리할 수 있습니다.

VBA 매크로, 이제 어렵게만 느껴지지 않죠? 😉 코드를 복사해서 붙여넣고, 필요에 따라 수정해서 사용해 보세요! 여러분만의 엑셀 마법으로 업무 효율을 200% 높여보세요! 🚀 궁금한 점이 있다면 언제든지 질문해 주세요! 🙋‍♀️🙋‍♂️ 함께 엑셀 마법사가 되어 봅시다! ✨

 

반응형