Please Enable JavaScript!
Gon[ Enable JavaScript ]

엑셀 VBA 카메라 기능을 매크로로 작성하기

엑셀(Excel)/VBA

엑셀 VBA 카메라 기능을 매크로로 작성하기

 

환경: Microsoft Excel 2013

 

이번에는 엑셀의 카메라 기능을 VBA 로 구현해 보겠습니다. 엑셀 시트에서 사용하려면 설정에서 카메라 기능을 추가해야 합니다. 카메라 기능은 엑셀에서 선택한 셀 영역을 사진처럼 찍어서 이미지로 복사할 수 있습니다. 이 기능을 VBA 로 구현해 보도록 하겠습니다.

 

아래 그림처럼 카메라 기능을 이용하면 선택한 셀 영역을 이미지로 복사할 수 있습니다. 개요에서도 설명했듯이 이 기능과 [추가기능모음] 이라는 탭은 제가 [설정]에서 추가한 것입니다. 

엑셀 VBA 카메라 기능을 매크로로 작성하기

 

이런 카메라 기능을 VBA 에서 구현하기 위해서 CopyPicture() 함수를 사용합니다. CopyPicture() 를 실행하기 전에 먼저 영역을 선택해야겠죠. 그럼 Selection.CopyPicture 을 이용해서 영역을 찍습니다. 그리고 자신이 원하는 영역인 Range(“A14”).Select 로 지정해 줍니다. 그리고 ActiveSheet.Paste 로 바로 위에서 선택한 영역에 복사한 이미지를 붙여넣기 하면 카메라 기능과 동일하게 됩니다.

 

Sub 카메라기능()

 

    ActiveSheet.Select

    Selection.CopyPicture Appearance:=xlScreen, Format:=xlPicture

   

    ' 복사하기

    Range("A14").Select

    ActiveSheet.Paste

 

End Sub

 

아래 그림은 VBA 로 카메라 기능을 구현해서 실행한 결과 입니다. 붙여넣기 한 내용을 보시면 이미지인 것을 알 수 있습니다.

엑셀 VBA 카메라 기능을 매크로로 작성하기


Selection.Formula 속성은 복사한 영역에서 원하는 부분만 골라 낼 수 있습니다. 아래 소스에서 원래 복사한 내용은 F12 까지 이지만 Selection.Formula C13 까지만 골라내서 붙여넣기한 것입니다.

 

Sub 카메라기능()

 

    ActiveSheet.Select

    Selection.CopyPicture Appearance:=xlScreen, Format:=xlPicture

   

    ' 복사하기

    Range("A14").Select

    ActiveSheet.Paste

    Selection.Formula = "A1:C13"

   

End Sub

 

결과 화면처럼 A1 에서 C12 까지만 골라내서 붙여넣기를 한 것이기 때문에 그림크기에 맞추다 보니 글자가 늘어난 것입니다.

엑셀 VBA 카메라 기능을 매크로로 작성하기

 

Posted by 녹두장군

댓글을 달아 주세요

  1. 봄이 2020.06.03 20:35  댓글주소  수정/삭제  댓글쓰기

    좋은 정보감사합니다.
    혹시 저렇게 만들어진 카메라 스크린샷을 클릭한번으로 다시 삭제하고 싶을때는 매크로를 어찌 작성해야될까요?