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

파워포인트 VBA: 오브젝트 해제하기

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

파워포인트 VBA: 오브젝트 해제하기

파워포인트 VBA 프로그래밍을 공부하다보면, 오브젝트 해제에 대한 중요성을 깨닫게 됩니다. 오브젝트를 제대로 해제하지 않으면 메모리 누수가 발생하고 성능에도 영향을 미칠 수 있습니다. 이번 포스팅에서는 파워포인트 VBA에서 오브젝트를 해제하는 방법에 대해 알아보겠습니다.

1. 오브젝트 해제란?

VBA에서는 오브젝트를 사용하여 파워포인트 프레젠테이션을 조작합니다. 하지만 오브젝트를 사용한 후, 해당 오브젝트가 메모리에서 정리되지 않으면 메모리 누수가 발생하게 됩니다. 따라서 오브젝트를 사용한 후에는 반드시 오브젝트를 해제해야 합니다.

2. 오브젝트 해제 방법

2.1. Set 문을 사용하여 오브젝트 해제하기

VBA에서는 Set 문을 사용하여 오브젝트를 해제할 수 있습니다. 예를 들어, 다음과 같이 슬라이드를 추가하는 코드를 작성했다고 가정해보겠습니다.

Sub AddSlide()
    Dim ppt As PowerPoint.Presentation
    Dim slide As PowerPoint.Slide

    Set ppt = ActivePresentation
    Set slide = ppt.Slides.Add(ppt.Slides.Count + 1, PowerPoint.PpSlideLayout.ppLayoutBlank)

    ' 슬라이드 추가 작업 수행
End Sub

위 코드에서는 슬라이드를 추가한 후, pptslide 오브젝트를 해제해야 합니다. 해제하지 않으면 메모리 누수가 발생할 수 있습니다. 따라서 코드의 마지막 부분에 다음과 같이 Set으로 설정한 오브젝트를 해제하는 코드를 추가해야 합니다.

Sub AddSlide()
    Dim ppt As PowerPoint.Presentation
    Dim slide As PowerPoint.Slide

    Set ppt = ActivePresentation
    Set slide = ppt.Slides.Add(ppt.Slides.Count + 1, PowerPoint.PpSlideLayout.ppLayoutBlank)

    ' 슬라이드 추가 작업 수행

    Set slide = Nothing
    Set ppt = Nothing
End Sub

위와 같이 Set 오브젝트 = Nothing을 사용하여 오브젝트를 해제할 수 있습니다.

2.2. With 문을 사용하여 오브젝트 해제하기

또 다른 오브젝트 해제 방법은 With 문을 사용하는 것입니다. With 문은 같은 오브젝트에 대해 반복적인 작업을 할 때 유용합니다. 예를 들어, 다음과 같이 프레젠테이션의 폰트를 변경하는 코드를 작성했다고 가정해보겠습니다.

Sub ChangeFont()
    Dim ppt As PowerPoint.Presentation
    Dim slide As PowerPoint.Slide
    Dim shape As PowerPoint.Shape

    Set ppt = ActivePresentation
    Set slide = ppt.Slides(1)
    Set shape = slide.Shapes(1)

    ' 폰트 변경 작업 수행

    Set shape = Nothing
    Set slide = Nothing
    Set ppt = Nothing
End Sub

위 코드에서는 ppt, slide, shape 오브젝트를 사용한 후에 해제해야 합니다. 이를 With 문을 사용하여 다음과 같이 해결할 수 있습니다.

Sub ChangeFont()
    Dim ppt As PowerPoint.Presentation
    Dim slide As PowerPoint.Slide
    Dim shape As PowerPoint.Shape

    Set ppt = ActivePresentation
    Set slide = ppt.Slides(1)
    Set shape = slide.Shapes(1)

    ' 폰트 변경 작업 수행
    With shape
        .Font.Name = "Arial"
        .Font.Size = 12
    End With

    Set shape = Nothing
    Set slide = Nothing
    Set ppt = Nothing
End Sub

With 문을 사용하면 코드를 간결하게 작성할 수 있습니다. 마지막에는 위와 같이 각 오브젝트를 해제해주어야 합니다.

3. 오브젝트 해제의 중요성

오브젝트 해제는 메모리 관리를 위해 매우 중요합니다. 특히 파워포인트와 같이 대용량의 데이터를 다루는 경우, 오브젝트를 제대로 해제하지 않으면 메모리 누수로 인해 성능 저하가 발생할 수 있습니다. 따라서 오브젝트를 사용한 후에는 반드시 오브젝트를 해제해주어야 합니다.

4. 결론

이번 포스팅에서는 파워포인트 VBA에서 오브젝트를 해제하는 방법에 대해 알아보았습니다. 오브젝트를 제대로 해제하지 않으면 메모리 누수가 발생할 수 있으므로, 오브젝트를 사용한 후에는 반드시 해제하는 것을 잊지 않도록 주의해야 합니다.