Please Enable JavaScript!
Gon[ Enable JavaScript ]

엑셀 VBA 메모의 모양을 직사각형, 풍선, 다이어몬드 형태 만들기

엑셀(Excel)/VBA

엑셀 시트에서는 추가한 메모의 형태를 바꿀 수 없습니다. 사각형 그대로 유지해야 됩니다. 만약 형태를 바꾸고 싶다면 VBA 에서 작업을 해야 합니다. 옵션의 종류가 너무 많아서 일일이 다 소개를 해 드릴 수는 없고 사용할 만한 형태만 몇 가지 추려 보았습니다. 나머지는 상수값을 변경해 가면서 테스트 해 보시기 바랍니다.

 

 

먼저 원하는 셀에 메모를 추가해야 합니다. AddCommnet 로 메모를 추가하고 화면에 보이도록 Comment.Visible=true 로 설정합니다. 만약 false 로 하게 되면 숨겨지며 클릭해야 볼 수 있습니다. 형태를 결정하는 속성값은 AutoShapeType 입니다. 직사각형이 아닌 둥근 모양의 메모 옵션은 msoShapeRoundedRectangle 입니다. 이 외에도 다양한 옵션들이 있습니다. 상수 목록에 보시면 엄청나게 많이 있으므로 하나씩 테스트해서 확인해 보시기 바랍니다

엑셀 VBA 메모의 모양을 직사각형, 풍선, 다이어몬드 형태로 만드는 방법

 

메모의 형태를 결정짓는 많은 상수값 중에서 몇 가지만 셀에 추가해 보았습니다. 둥근형태 외에 풍선, 다이어몬드, 하트 모양 입니다. 이렇게 다양한 모양은 엑셀 시트에서는 하지 못합니다. 메모 서식에 아무리 찾아봐도 없더군요. 그래서 모양을 바꾸려면 VBA 코드로 매크로 함수를 만들어서 한번에 형태를 변경하시면 됩니다.

Sub 둥근메모만들기()   
    With Range("A1")
        .AddComment
        .Comment.Visible = True
        .Comment.Shape.AutoShapeType = msoShapeRectangle
        .Comment.Shape.Select True
    End With
   
    With Range("A2")
        .AddComment
        .Comment.Visible = True
        .Comment.Shape.AutoShapeType = msoShapeRoundedRectangle
        .Comment.Shape.Select True
    End With
   
    With Range("A3")
        .AddComment
        .Comment.Visible = True
        .Comment.Shape.AutoShapeType = msoShapeBalloon
        .Comment.Shape.Select True
    End With
   
    With Range("A4")
        .AddComment
        .Comment.Visible = True
        .Comment.Shape.AutoShapeType = msoShapeDiamond
        .Comment.Shape.Select True
    End With
   
    With Range("A5")
        .AddComment
        .Comment.Visible = True
        .Comment.Shape.AutoShapeType = msoShapeHeart
        .Comment.Shape.Select True
    End With
   
End Sub

  

 

아래 그림은 소스를 실행한 결과 입니다. 이렇게 하나씩 테스트 해보시고 남들과 색다른 엑셀 시트를 꾸며 보시기 바랍니다. 만약 기존에 추가한 메모가 있다면 엑셀 시트 로딩 함수에서 for 문을 돌며 메모 개체를 가져온 후 AutoShapeType 속성만 변경하시면 되겠죠.

엑셀 VBA 메모의 모양을 직사각형, 풍선, 다이어몬드 형태로 만드는 방법

※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다.
엑셀 VBA 반복문 For Next 사용하기
엑셀 VBA 함수 만들어서 매크로와 연결하기
엑셀 VBA 참조하는 여러가지 방법
엑셀 VBA 통합 문서 문서가 열리는 순간 기능 구현하기
셀 VBA 매크로 디버깅, 디버그 코드 분석하기
Posted by 녹두장군1
,