Lost Information!

엑셀 VBA 기초 - 마우스 오른쪽 클릭으로 차트 생성하기 본문

개인브랜드블로그를 만들어 보자/엑셀VBA

엑셀 VBA 기초 - 마우스 오른쪽 클릭으로 차트 생성하기

Lostinformation 2020. 11. 2. 16:46

모두가 칼퇴하는 그날까지~

 

지난 글에서는 

change 이벤트

원하는 조건까지 

추가할 수 있다는 것을

알려드렸는데요.

 

만일 저번 내용을 모르시거나

기억이 나질 않으신다면

밑에 글을 참고해주세요.

red-s.tistory.com/2434

 

엑셀 VBA 기초 - change 이벤트 - 2편

모두가 칼퇴하는 그날까지~ 지난 글에서는 change 이벤트를 만드는 방법에 대해 알려드렸는데요. 만일 저번 내용을 모르시거나 기억이 나질 않으신다면 밑에 글을 참고해주세요. red-s.tistory.com/2

red-s.tistory.com

이번 글에서는 

마우스 오른쪽 버튼을

눌러 차트를 생성하는 

방법에 대해 알려드릴게요.

 

 

먼저 위와 같은 데이터가

있다고 가정할게요.

 

그런데 보통 일반적으로는

마우스 오른쪽 버튼을 

클릭하게 되면

 

위와 같은 창이 뜨게 되는데요.

 

이것과 달리 다른 차트가

생성되도록 만들어보겠습니다.

 

그럼 ALT + F11을 

눌러주세요.

 

 

그리고 마우스 오른쪽

버튼을 눌러서 

삽입에서 모듈을 

클릭해주세요.

 

 

그다음 이렇게 

적어주세요.

 

바로 설명 들어갈게요

 

Sub chart1()

차트 1이라는

매크로를 만들게

Dim rngD As Range

rngD라는 변수를 만들게

 

Dim cht As Object

cht라는 변수도 만들게.

(도형, 차트 객체를 받는 변수)

 

Set rngD = Selection

rngD변수는 이미

선택한 범위가 같아

 

set cht = ActiveSheet.Shapes.AddChart

그리고 범위를

차트로 생성해줘

 

cht.Chart.SetSourceDate Source:=rngD

차트의 소스 데이터는

지정한 범위와 같아

 

End Sub

 

그다음 데이터의 범위를

지정하고 이걸 실행하면 

 

이렇게 뜨는 것을

확인할 수 있습니다.

 

하지만 아직 마우스 

오른쪽 버튼을 눌렀을 때

차트가 나오게 해야 하죠.

 

그럼 다시 ALT+ F11에 

활성화된 시트를 누르고

일반이 아닌 workSheet로

변경해주세요.

 

 

그다음 workSheet 옆을

BeforeRightClick라고 

변경해주시면 

자동으로 문구가 나오죠.

 

그다음 이렇게 

적어주시면 되는데요.

 

바로 설명 들어가면

 

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)

마우스 우클릭했을 때 

해당 이벤트를 실행해

 

if Target.Count > 1 Then

선택한 범위가 만약 

1보다 많다면

 

If Target.Cells(1,1) <>"" Then

그리고 선택한 영역의

처음 시작이 비어있는 곳이

아니라면

 

call chart1

차트 1 매크로를

불러와 

 

cancel = true

그리고 마우스 우클릭

했을 때 나오는

팝업창을 뜨게 하지 마

 

그리고 영역을 설정한 후에

우클릭을 해보면

 

이렇게 설정한 영역만큼

차트가 생성되는 것을

확인할 수 있습니다.

 

또한 잘라내기 복사와

같은 창은 뜨지도 않고

하나의 셀을 클릭하고 

마우스 오른쪽을 눌러도

또는 데이터가 없는 범위를

지정해서 마우스 오른쪽을

클릭해도 아무것도 

나오지 않죠.

 

차트가 나오기 때문에

한눈에 보기 쉽다는 장점이

있는 메크로입니다.

 

어려워 보여도 충분히 

할 수 있기에 차근차근

하나씩 해보시길 바랍니다.

 

여기까지 궁금하신 점 

있으시다면 댓글에 남겨주시고요.

 

공감구독도 부탁드리겠습니다.

Comments