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

워드 문서에서 특정 스타일 삭제 자동화를 위한 VBA 코드

by 포탈메이커 2023. 7. 8.

워드 문서에서 특정 스타일 삭제 자동화를 위한 VBA 코드

많은 사람들이 워드 문서를 작성하는 동안 특정 스타일을 삭제하는 작업에 많은 시간을 소비하고 있습니다. 이러한 작업은 반복적이고 번거로워서 자동화하고 싶은 욕심이 생기는 것은 당연한 일입니다. 이 포스팅에서는 VBA(Virtual Basic for Applications) 코드를 사용하여 워드 문서에서 특정 스타일을 자동으로 삭제하는 방법을 알아보겠습니다.

목차

  1. VBA 코드 작성
  2. 코드 설명
  3. 코드 실행 방법
  4. 주의 사항

1. VBA 코드 작성

Sub DeleteStyle()
    Dim sStyle As Style
    Dim i As Integer

    ' 삭제할 스타일 이름 입력
    Dim sName As String
    sName = InputBox("삭제할 스타일의 이름을 입력하세요.")

    ' 스타일이 존재하지 않을 경우 메시지 출력
    On Error Resume Next
    Set sStyle = ActiveDocument.Styles(sName)
    On Error GoTo 0

    If sStyle Is Nothing Then
        MsgBox "해당 스타일이 존재하지 않습니다."
        Exit Sub
    End If

    ' 문서 전체를 탐색하여 스타일 삭제
    For i = ActiveDocument.Range.Styles.Count To 1 Step -1
        If ActiveDocument.Range.Styles(i).NameLocal = sStyle.NameLocal Then
            ActiveDocument.Range.Styles(i).Delete
        End If
    Next i

    MsgBox "스타일이 성공적으로 삭제되었습니다."
End Sub

2. 코드 설명

  • DeleteStyle() 서브루틴은 사용자로부터 삭제할 스타일의 이름을 입력받고, 해당 스타일을 문서 전체에서 삭제하는 역할을 합니다.
  • 코드 실행 시 InputBox를 통해 사용자로부터 스타일 이름을 입력받습니다.
  • 입력받은 스타일 이름을 기준으로 문서 전체를 탐색하며, 해당 스타일을 찾으면 삭제합니다.
  • 스타일이 존재하지 않을 경우, 해당 메시지를 사용자에게 알리고 프로세스를 종료합니다.
  • 스타일을 성공적으로 삭제한 후, 사용자에게 삭제 완료 메시지를 표시합니다.

3. 코드 실행 방법

위 코드를 사용하여 특정 스타일을 자동으로 삭제하는 방법은 다음과 같습니다.

  1. 워드 문서를 열고, Alt + F11을 눌러 VBA 편집기를 엽니다.
  2. 새로운 모듈을 추가하고, 모듈 내에 위의 코드를 복사하여 붙여넣습니다.
  3. DeleteStyle() 서브루틴이 호출되도록 코드를 수정하거나, 직접 실행합니다.
  4. 실행 시 InputBox가 표시되며, 삭제할 스타일의 이름을 입력합니다.
  5. 코드가 실행되면서 해당 스타일을 찾아 문서 전체에서 삭제합니다.
  6. 삭제가 완료되면 메시지 창이 표시됩니다.

4. 주의 사항

  • 이 코드를 사용하여 스타일을 삭제할 경우, 해당 스타일을 사용한 텍스트도 함께 삭제될 수 있습니다. 스타일을 삭제하기 전에 문서를 백업하는 것을 권장합니다.
  • 모든 스타일의 삭제를 원하지 않는 경우, 코드 내에 조건문을 추가하여 원하는 스타일만 삭제할 수 있도록 수정할 수 있습니다.
  • 위 코드는 워드 2010 버전을 기준으로 작성되었습니다. 다른 버전에서는 동작하지 않을 수 있으므로, 해당 버전에 맞게 코드를 수정해야 합니다.

이제 위의 VBA 코드를 사용하여 워드 문서에서 특정 스타일을 자동으로 삭제할 수 있습니다. 이를 통해 매번 스타일을 수동으로 삭제하는 불필요한 작업을 줄이고, 시간을 절약할 수 있습니다.