Please Enable JavaScript!
Gon[ Enable JavaScript ]

반응형

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

 

환경: Microsoft Excel 2013

 

엑셀 시트에서는 추가한 메모의 형태를 바꿀 수 없습니다. 사각형 그대로 유지해야 됩니다. 만약 형태를 바꾸고 싶다면 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 메모의 모양을 직사각형, 풍선, 다이어몬드 형태로 만드는 방법

 

반응형
Posted by 녹두장군

댓글을 달아 주세요