일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- 카카오톡 협박
- 몸캠피씽
- 메신저톡 사기
- 라바웨이브
- 영통 협박
- 영상통화 유출
- 동영상유포협박
- 사이버 범죄 구제 업체
- 동영상 사기
- 라인 영상통화 사기
- 팀카시아
- 라인 영상통화 협박
- 영상사기
- 카카오톡 사기
- 사이버범죄구제
- 영상통화 협박
- 영상 사기
- 카톡 영상 유출
- 몸캠피싱
- 영통사기
- 사이버범죄구제업체
- 카톡 영상 사기
- 엑셀#직장인칼퇴#칼퇴#직장인엑셀#VBA 배열#배열변수
- 영상유출
- 영상통화사기
- 영상통화 사기
- 라인 동영상 유포
- 영통협박
- 카톡 영상 협박
- 랜덤채팅 사기
- Today
- Total
Lost Information!
엑셀 VBA 기초 - change 이벤트 - 1편 본문
모두가 칼퇴하는 그날까지~
지난 글에서는
클릭하면 셀의 색상이
변경되는 매크로를
만드는 방법에 대해
알려드렸는데요.
만일 저번 내용을 모르시거나
기억이 나질 않으신다면
밑에 글을 참고해주세요.
이번 글에서는
CHANGE 이벤트에 대해
알려드리도록 하겠습니다.
CHANGE 이벤트란
특정 셀의 값이 변경되었을 때
원하는 이벤트가 실행되도록
하는 매크로인데요.
SelectionChange는 클릭했을 때
Change는 값이 변경되었을 때
라고 생각하시면 편합니다.
그럼 엑셀을 켜고
아래와 같은 표가 있다고
가정하겠습니다.
위의 성별 옆에
남과 여로 데이터 유효성 검사를
통해 구분 지어놨는데요.
혹시 모르는 분들을 위해
알려드리면
이렇게 설정하시면
남, 여로 데이터를 구분해서
사용할 수 있습니다.
이를 활용하여
성별이 변경될 때마다
아래 표의 해당되는
행의 색상을 변경해보겠습니다.
그럼 이제 본격적으로
시작하기 위해
ALT + F11 버튼을
눌러주세요~
그다음 해당 표가 있는
시트를 더블클릭해주시고
일반을 WorkSheet로
변경해준 뒤에
저번과 다르게 Change로
변경해주세요~
그다음 이렇게 적어주시고
실행하시면 되는데요.
바로 설명 들어가겠습니다.
아 그전에 데이터가
아닌 객체를 변수로
(셀, 범위, 시트, 도형 등)
지정할 때는
SET 변수명 = 객체
로 지정합니다.
Private Sub Worksheet_Change(ByVal Target As Range)
워크시트 안에서 무언가
변경이 됐을 때 그 타깃을
범위로 받아서 아래 내용을
수행하겠다.
Dim strS As String
스트링 타입의 strS라는
변수를 설정해
Dim rngR As Range
range 타입의 rngR라는
변수를 설정해
Dim i As Long
long타입의 i라는
변수를 설정해
strS = Target
strS는 타깃이고
Set rngR = Range("c7:I20")
rngR은 c7부터 l20까지로
범위를 지정할게
If Intersect(Target, Range("d3")) Is Nothing Then Exit Sub
만약 타깃의 값과 d3의 값이
모두 참이 아니라면
아무 일도 일어나지 않아
For i = 7 To 20
숫자 변수는 7부터
20까지 움직이는데
If Range("d" & i) = strS Then
d열의 값이 타깃의
값과 같다면
Range("c" & i). Resize(1, 7). Interior.ColorIndex = 6
c행 i열부터 7칸 색상을 노란색으로 변경해
End If
그리고 실행하게 되면
이렇게 원하는 곳만
색상이 변경되게 됩니다.
하지만 문제가 있죠.
바로 다시 남성으로
변경했을 때 여성으로
선택했을 때 변경되었던
색상이 원래대로 돌아가지
않는다는 건데요.
이것에 대해서는
다음 글에 이어서
알려드리도록 하겠습니다.
이번 글에서는 평소보다
조금 어려웠을 수도 있는 만큼
꼭 직접 적어보시면서
익히셨으면 좋겠네요~
그럼 여기까지 궁금하신 점은
댓글에 남겨주시고
공감과 구독 부탁드립니다.