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

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

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

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

워드 문서를 작업하다보면 특정 스타일을 다른 부분에도 적용해야 할 때가 있습니다. 이럴 때마다 일일이 스타일을 설정하는 번거로움을 줄일 수 있는 방법이 있습니다. 바로 VBA(Visual Basic for Applications) 코드를 사용하는 것입니다. VBA 코드를 활용하면 워드 문서에서 특정 스타일의 복사를 자동화할 수 있습니다.

1. 스타일 복사 기능

VBA를 사용하면 워드 문서에서 스타일을 복사하는 것이 가능합니다. 다음은 워드 VBA에서 스타일을 복사하는 코드입니다.

Sub CopyStyle()
    Dim styleName As String
    styleName = "원본 스타일 이름"

    Dim sourceStyle As Style
    Set sourceStyle = ActiveDocument.Styles(styleName)

    Dim targetStyle As Style
    Set targetStyle = ActiveDocument.Styles.Add(Name:="복사된 스타일 이름", _
        Type:=sourceStyle.Type)

    targetStyle.Font.Name = sourceStyle.Font.Name
    targetStyle.Font.Size = sourceStyle.Font.Size
    targetStyle.Font.Bold = sourceStyle.Font.Bold
    ' 필요한 스타일 속성을 추가로 설정할 수 있습니다.

    ' 복사된 스타일을 선택한 텍스트에 적용합니다.
    Selection.Style = targetStyle
End Sub

위 코드는 "원본 스타일 이름"에 해당하는 스타일을 "복사된 스타일 이름"으로 복사하는 예시입니다. Set sourceStyle = ActiveDocument.Styles(styleName) 부분에서 복사할 원본 스타일을 설정하고, Set targetStyle = ActiveDocument.Styles.Add(Name:="복사된 스타일 이름", _) 부분에서 복사된 스타일을 추가합니다.

복사할 스타일의 속성을 설정하는 부분은 targetStyle.Font.Name, targetStyle.Font.Size, targetStyle.Font.Bold 등으로 이루어집니다. 필요한 스타일 속성을 추가로 설정해주면 됩니다.

마지막으로 Selection.Style = targetStyle 코드를 통해 복사된 스타일을 선택한 텍스트에 적용합니다.

2. 자동화된 스타일 복사

위에서 작성한 코드를 사용하여 원하는 스타일을 자동으로 복사해보겠습니다. 다음은 VBA를 사용해서 특정 스타일을 복사하는 예시 코드입니다.

Sub CopyMultipleStyles()
    Dim styleList() As Variant
    styleList = Array("제목 1", "본문")

    Dim i As Integer
    For i = LBound(styleList) To UBound(styleList)
        Dim sourceStyle As Style
        Set sourceStyle = ActiveDocument.Styles(styleList(i))

        Dim targetStyle As Style
        Set targetStyle = ActiveDocument.Styles.Add(Name:="복사된 " & styleList(i), _
            Type:=sourceStyle.Type)

        targetStyle.Font.Name = sourceStyle.Font.Name
        targetStyle.Font.Size = sourceStyle.Font.Size
        targetStyle.Font.Bold = sourceStyle.Font.Bold
        ' 필요한 스타일 속성을 추가로 설정할 수 있습니다.

        ' 복사된 스타일을 선택한 텍스트에 적용합니다.
        Selection.Style = targetStyle
    Next i
End Sub

위 코드는 "제목 1"과 "본문"이라는 스타일을 복사하는 예시입니다. styleList 변수에 복사하려는 스타일의 이름을 배열 형태로 정의합니다.

For 반복문을 통해 배열에 있는 모든 스타일을 복사하고, 각 스타일의 속성을 설정합니다. 속성 설정은 이전 예시와 동일한 방식으로 이루어집니다. 필요한 스타일 속성을 추가로 설정할 수 있습니다.

마지막으로 Selection.Style = targetStyle 코드를 통해 복사된 스타일을 선택한 텍스트에 적용합니다. For 반복문의 끝까지 실행되면 모든 스타일이 자동으로 복사됩니다.

3. 마무리

이렇게 VBA 코드를 사용하여 워드 문서에서 특정 스타일의 복사를 자동화할 수 있습니다. 코드를 활용하면 스타일을 일일이 복사하는 번거로움을 덜 수 있습니다. 필요에 따라 코드를 수정하여 다양한 스타일의 복사를 자동화할 수 있습니다.

자세한 내용은 마크다운 사용법 등의 문서를 참고하시기 바랍니다.

이상으로 "워드 문서에서 특정 스타일 복사 자동화를 위한 VBA 코드" 라는 제목으로 포스팅을 마치겠습니다.