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

엑셀 VBA 매크로로 조건에 맞는 열 삭제하기 (예제 8가지)

VBA 매크로는 엑셀에서 다양한 작업을 실행할 때 가장 효과적이고 빠르며 안전한 방법입니다. 이 글에서는 VBA 매크로를 활용해 특정 조건에 따라 열을 삭제하는 방법을 단계별로 소개합니다.

예제 파일 내려받기

아래에서 연습용 엑셀 워크북을 무료로 내려받아 직접 실습해 볼 수 있습니다.

기본 문법

VBA를 사용해 열을 삭제할 때 사용하는 기본 문법은 다음과 같습니다.

Columns(열 번호 / 열 주소).Delete

이제 실제 예제를 통해 셀 값, 다른 워크시트, 표(Table) 등 다양한 기준으로 열을 삭제하는 방법을 살펴보겠습니다.

조건에 따라 열을 삭제하는 VBA 매크로 예제 8가지

이번 섹션에서는 VBA 매크로를 사용해 셀 값, 다른 워크시트, 표 등을 기준으로 열을 삭제하는 방법을 배웁니다.

설명에는 아래 데이터 집합을 예제로 사용합니다.

엑셀 VBA 매크로로 조건에 맞는 열 삭제하기 (예제 8가지)

기준 1: 셀 값 기준으로 열 삭제

특정 셀 값이 있는 열을 삭제하려면 아래 단계를 따르세요.

단계:

  • 키보드에서 Alt + F11을 누르거나 개발 도구 → Visual Basic 탭으로 이동해 Visual Basic 편집기를 엽니다.

엑셀 VBA 매크로로 조건에 맞는 열 삭제하기 (예제 8가지)

  • 코드 창이 열리면 메뉴 모음에서 삽입 → 모듈을 클릭합니다.

엑셀 VBA 매크로로 조건에 맞는 열 삭제하기 (예제 8가지)

  • 아래 코드를 복사해 코드 창에 붙여넣습니다.
Sub DeleteColumnsBasedOnCellValue()
Dim iCol As Long
Dim iWrk As Long
iCol = 10
For iWrk = iCol To 1 Step -1
    If Cells(1, iWrk) = 2 Then
        Columns(iWrk).Delete
    End If
Next
End Sub

이제 코드를 실행할 준비가 되었습니다.

엑셀 VBA 매크로로 조건에 맞는 열 삭제하기 (예제 8가지)

이 코드는 첫 행의 셀 값이 2로 시작하는 열을 삭제합니다.

  • 키보드에서 F5를 누르거나 메뉴 모음에서 실행 → Sub/UserForm 실행을 선택합니다. 하위 메뉴 모음의 작은 재생(▶) 아이콘을 클릭해도 매크로를 실행할 수 있습니다.

엑셀 VBA 매크로로 조건에 맞는 열 삭제하기 (예제 8가지)

결과는 아래와 같습니다.

엑셀 VBA 매크로로 조건에 맞는 열 삭제하기 (예제 8가지)

셀 값이 2인 열들이 모두 삭제되었습니다.

더 읽어보기: 엑셀에서 VBA로 열 삭제하기

기준 2: 빈 셀이 포함된 열 삭제

빈 셀이 있는 열을 삭제하려면 아래 단계를 따르세요.

단계:

  • 앞서와 같은 방법으로 개발 도구 탭에서 Visual Basic 편집기를 열고 코드 창에 모듈을 삽입합니다.
  • 코드 창에 아래 코드를 복사해 붙여넣습니다.
Sub DeleteBlankCells()
Range("A1:J10").Select '//range of the dataset
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.EntireColumn.Delete
End Sub

코드 실행 준비가 완료되었습니다.

엑셀 VBA 매크로로 조건에 맞는 열 삭제하기 (예제 8가지)

  • 매크로를 실행합니다.

엑셀 VBA 매크로로 조건에 맞는 열 삭제하기 (예제 8가지)

빈 셀을 포함한 모든 열이 삭제되었습니다.

기준 3: 완전히 비어 있는 열 삭제

다음 데이터 집합에는 비어 있는 열들이 있습니다. VBA 매크로로 이러한 빈 열을 삭제하는 방법을 알아보겠습니다.

엑셀 VBA 매크로로 조건에 맞는 열 삭제하기 (예제 8가지)

단계:

  • 앞서와 같은 방법으로 개발 도구 탭에서 Visual Basic 편집기를 열고 코드 창에 모듈을 삽입합니다.
  • 코드 창에 아래 코드를 복사해 붙여넣습니다.
Sub DeleteBlankCol()
Dim i As Integer
For i = 1 To 4
Columns(i + 1).Delete
Next i
End Sub

코드 실행 준비가 완료되었습니다.

엑셀 VBA 매크로로 조건에 맞는 열 삭제하기 (예제 8가지)

  • 매크로를 실행합니다.

엑셀 VBA 매크로로 조건에 맞는 열 삭제하기 (예제 8가지)

비어 있던 열들이 모두 삭제되었습니다.

더 읽어보기: 엑셀에서 빈 열 삭제하기

기준 4: 인접하지 않은 여러 열 삭제

서로 떨어진 여러 열을 한 번에 삭제하려면 아래 단계를 따르세요.

단계:

  • 앞서와 같은 방법으로 개발 도구 탭에서 Visual Basic 편집기를 열고 코드 창에 모듈을 삽입합니다.
  • 코드 창에 아래 코드를 복사해 붙여넣습니다.
Sub DeleteNAdjCol()
Range("C:E, G:I").Delete
End Sub

코드 실행 준비가 완료되었습니다.

엑셀 VBA 매크로로 조건에 맞는 열 삭제하기 (예제 8가지)

  • 매크로를 실행합니다.

엑셀 VBA 매크로로 조건에 맞는 열 삭제하기 (예제 8가지)

C부터 E(Feb~Apr), 그리고 G부터 I(Jun~Aug)까지의 열들이 모두 삭제되었습니다.

함께 읽으면 좋은 글:

  • 엑셀에서 사용하지 않는 열 삭제하는 가장 쉬운 5가지 방법
  • 수식에 영향을 주지 않고 열 삭제하기 (2가지 방법)
  • 엑셀에서 중복 열 삭제하는 6가지 방법

기준 5: 특정 워크시트의 열 삭제

특정 워크시트에서 열을 삭제하려면 아래 단계를 따르세요.

단계:

  • 앞서와 같은 방법으로 개발 도구 탭에서 Visual Basic 편집기를 열고 코드 창에 모듈을 삽입합니다.
  • 코드 창에 아래 코드를 복사해 붙여넣습니다.
Sub DeleteColFromSheet()
Worksheets("New Column").Select '// set the sheet name
Columns("D:F").Delete
End Sub

코드 실행 준비가 완료되었습니다.

엑셀 VBA 매크로로 조건에 맞는 열 삭제하기 (예제 8가지)

  • 매크로를 실행합니다.

엑셀 VBA 매크로로 조건에 맞는 열 삭제하기 (예제 8가지)

New Column” 워크시트에서 D부터 F(Mar~May)까지의 열들이 삭제되었습니다.

기준 6: 표에서 열 하나 삭제

표(Table)에서 열을 삭제하려면 아래 단계를 따르세요.

단계:

  • 앞서와 같은 방법으로 개발 도구 탭에서 Visual Basic 편집기를 열고 코드 창에 모듈을 삽입합니다.
  • 코드 창에 아래 코드를 복사해 붙여넣습니다.
Sub DeleteColTable()
Dim srcTable As ListObject
Dim srcSheet As Worksheet
'Set the table from which column is to be deleted
Set srcTable = ActiveSheet.ListObjects("ExTable")
'Set the sheet that contains the table
Set srcSheet = Sheet8
With srcSheet
srcTable.ListColumns(5).Delete
End With
End Sub

코드 실행 준비가 완료되었습니다.

엑셀 VBA 매크로로 조건에 맞는 열 삭제하기 (예제 8가지)

  • 매크로를 실행합니다.

엑셀 VBA 매크로로 조건에 맞는 열 삭제하기 (예제 8가지)

표에서 5번째 열(Apr)이 삭제되었습니다.

기준 7: 표에서 여러 열 삭제

표에서 여러 개의 열을 삭제하려면 아래 단계를 따르세요.

단계:

  • 앞서와 같은 방법으로 개발 도구 탭에서 Visual Basic 편집기를 열고 코드 창에 모듈을 삽입합니다.
  • 코드 창에 아래 코드를 복사해 붙여넣습니다.
Sub DeleteMColTable()
Dim srcTable As ListObject
Dim srcSheet As Worksheet
Dim i As Integer
'Set the table from which column is to be deleted
Set srcTable = ActiveSheet.ListObjects("ExTable2")
'Set the sheet that contains the table
Set srcSheet = Sheet9
'Run the loop twice as we need to delete 2 columns
For i = 1 To 2
With Source
srcTable.ListColumns(5).Delete
End With
Next i
End Sub

코드 실행 준비가 완료되었습니다.

엑셀 VBA 매크로로 조건에 맞는 열 삭제하기 (예제 8가지)

  • 매크로를 실행합니다.

엑셀 VBA 매크로로 조건에 맞는 열 삭제하기 (예제 8가지)

표에서 5번째와 6번째 열(Apr, May)이 삭제되었습니다.

더 읽어보기: 엑셀에서 여러 열 삭제하는 방법

기준 8: 열 머리글 이름으로 표의 열 삭제

열 머리글(헤더) 이름을 기준으로 표에서 열을 삭제하려면 아래 단계를 따르세요.

단계:

  • 앞서와 같은 방법으로 개발 도구 탭에서 Visual Basic 편집기를 열고 코드 창에 모듈을 삽입합니다.
  • 코드 창에 아래 코드를 복사해 붙여넣습니다.
Sub DeleteColHeaderTable()
Dim srcTable As ListObject
Dim srcSheet As Worksheet
Dim i As Integer
Dim colName As String
'Set the table from which column is to be deleted
Set srcTable = ActiveSheet.ListObjects("ExTable3")
'Set the sheet that contains the table
Set srcSheet = Sheet10
'Case sensitive
colName = "Apr"
'Loop through all the columns in the table
For i = 1 To srcTable.ListColumns.Count
With srcSheet
'Check the column header
If srcTable.ListColumns(i).Name = colName Then
srcTable.ListColumns(i).Delete
Exit For
End If
End With
Next i
End Sub

코드 실행 준비가 완료되었습니다.

엑셀 VBA 매크로로 조건에 맞는 열 삭제하기 (예제 8가지)

  • 매크로를 실행합니다.

엑셀 VBA 매크로로 조건에 맞는 열 삭제하기 (예제 8가지)

머리글 이름이 Apr인 열이 표에서 삭제되었습니다.

마무리

이 글에서는 VBA 매크로를 활용해 엑셀에서 8가지 서로 다른 조건에 따라 열을 삭제하는 방법을 알아보았습니다. 실무에서 반복적인 열 정리 작업을 자동화하는 데 큰 도움이 되기를 바랍니다. 궁금한 점이 있다면 언제든 질문해 주세요.

추천 학습 콘텐츠

  • 수식을 지우지 않고 엑셀 내용만 지우는 3가지 방법
  • 엑셀에서 불필요한 열 삭제하는 7가지 방법