티스토리 뷰


안녕하세요. 구스입니다.


엑셀 매크로 VBA 강의를 지속적으로 하고 있는데요. 여러분들한테 도움이 되는지 잘 모르겠네요.

쉬운내용이지만, 도움이 되었으면 좋겠습니다.



오늘은 엑셀 매크로 VBA를 통해서그래프를 삭제하는 방법을 알아 볼까 합니다.

이전 글을 통해서 엑셀 VBA 혹은 엑셀 상에서 그래프 만드는 방법을 알아보았는데요. 이 부분 참고하시기 바랍니다. 



이 글에서는 이미 만들어진 차트를 엑셀 매크로에서 어떻게 지우는지에 대해서 설명을 드릴까 합니다.

이전 엑셀 차트 만들기 및 그래프 합치기를 통해서 만든 내용을 이용해서 지워볼께요.


차트의 구성은 아래와 같습니다.


이 글에서는 차트의 이름을 통해서 필요없는 차트만 삭제를 하고자 하는데요. 


아래의 그림에서 알 수 있듯이, 2개의 차트중 하단 차트의 이름은 차트 1, 위의 차트의 이름은 차트 2입니다. 차트의 이름은 아래 그림의 왼쪽 상단에 나오는 것으로 확인을 할 수가 있는데요. 각 차트를 선택하면 위의 이름이 자동적으로 변경이 됩니다. 




자 그럼 삭제를 해볼까요


1. Sheet의 모든 차트를 삭제하기


먼저 모든 차트를 삭제하는 방법을 알아보겠습니다.

모든 차트를 삭제하기 위해서는 엑셀 매크로 VBA 코드에서 아래와 같이 실행을 하면 됩니다.


Sheet1.ChartObjects.Delete


2. 차트 이름을 비교하여 필요없는 차트만 삭제하기


차트 이름을 통해서 삭제를 하도록 하겠습니다. 위의 그림은 차트 1과 차트 2라는 이름을 가진 차트라고 설명을 드렸습니다.

코드상에서 정말 이름이 그렇게 구성이 되는지 아래와 같이 코드를 만들어 실행을 해보도록 합시다. 


Sub A()


    Dim index As Integer

    Dim obj As Shape

    

    MsgBox (Sheet1.Shapes.Count)

    

    For index = 1 To Sheet1.Shapes.Count

        MsgBox (Sheet1.Shapes.Item(index).Name)

        

    Next

    

    ' 차트 전체 삭제시!

    'Sheet1.ChartObjects.Delete


End Sub


위의 코들르 실행하게 되면, 아래의 결과 처럼 차트 1, 차트 2의 값을 메시지 박스(MsgBox)를 통해서 확인을 할 수 있습니다.




그럼 위의 코드를 수정하여 차트 2를 삭제해보도록 하겠습니다. 

IF 구문을 사용하여 차트 2라는 이름을 가진 녀석을 지우도록 변경하였습니다. 


Sub A()


    Dim index As Integer

    Dim obj As Shape

    

    MsgBox (Sheet1.Shapes.Count)

    

    For index = 1 To Sheet1.Shapes.Count

    

        If Sheet1.Shapes.Item(index).Name = "차트 2" Then ' 차트 이름이 차트 2이면        

            Sheet1.Shapes.Item (index).Delete '해당 차트 삭제

        

        End If

        

    Next

    

    ' 차트 전체 삭제시!

    'Sheet1.ChartObjects.Delete


End Sub


위의 코드를 구현하고, 실행전 사진을 캡쳐하였습니다. 

그리고 코드를 실행해봅니다. 



차트 2라는 이름을 가진 차트가 삭제된 것을 확인할 수 있습니다. 



이 글에서는 엑셀 매크로를 이용하여 차트를 삭제하는 방법에 대해서 알아보았습니다.


이 글을 요약하면,

  • 차트 전체 삭제 방법
  • 차트 이름으로 구분하여 삭제 방법
에 대해서 안내를 드렸습니다.

궁금증이 있으시면, 언제든 질문하세요. 저는 준비되어있습니다.

그럼 이만 줄이겠습니다.

이 글이 도움이 되셨으면, 아래의 하트를 눌러주세요.


댓글