Lost Information!

엑셀 VBA 기초 - FOR_NEXT 그리고FOR_EACH 마무리 - 2편 본문

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

엑셀 VBA 기초 - FOR_NEXT 그리고FOR_EACH 마무리 - 2편

Lostinformation 2021. 1. 20. 16:38

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

 

지난 글에서는

FOR_NEXT 그리고

FOR_EACH 차이를

알려드렸습니다.

 

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

기억이 나질 않으신다면

밑에 글을 참고해주세요.

red-s.tistory.com/2493

 

엑셀 VBA 기초 - FOR_NEXT 그리고FOR_EACH 마무리 - 1편

모두가 칼퇴하는 그날까지~ 지난 글에서는 엑셀 셀에서 더블클릭으로 이미지를 선택하는 창을 만드는 방법에 대해 알려드렸습니다. 만일 저번 내용을 모르시거나 기억이 나질 않으신다면 밑

red-s.tistory.com

 

이번 글에서도 이어서 

예제를 보여드리면서

FOR_NEXT 그리고

FOR_EACH 차이를

알려드리겠습니다.

 

그럼 엑셀을 실행해주세요.

 

이번에는 객체로 잡아서

FOR_EACH_NEXT로 

짝수인지 홀수인지

구분해보겠습니다.

 

먼저 ALT +F11을 눌러주세요.

 

Sub Ex_2()
Dim rngT    As Range

EX_2이라는 매트로를

만들고 rngT라는 변수를

설정해줘(범위 변수)

      
For Each rngT In Range("E5:E15")

rngT는 E5:E15안에 

있는 각 객체이며


If rngT Mod 2 = 0 Then

그 객체를 2로 나눴을 때

값이 0이 나온다면


rngT.Offset(0, 1) = "짝수"

rngT 오른쪽 1칸 옆에

짝수라고 적어줘


Else

rngT.Offset(0, 1) = "홀수"

그렇지 않다면

rngT 오른쪽 1칸 옆에

홀수라고 적어줘


End If
Next rngT
End Sub

 

이렇게 적고 실행하게 되면

 

이렇게 정상적으로 

짝수와 홀수를 하나씩

구분해주게 됩니다.

 

그런데 여기 까지만 보면

FOR_NEXT 문에 비해

FOR_EACH_NEXT 문은

offset이라는 코드도 

활용해야 하고 더 어렵다고

느끼시는 분들도 계실 텐데요.

 

반대로 객체로 잡아서 

코드를 잡는 것이 편하다고

느끼시는 분들도 

있을 거라 생각합니다.

 

그럼 이렇게 도형이 있고 

해당 도형 안에 숫자를 하나씩

증가하면서 적어보도록 하죠.

 

이렇게 FOR_NEXT문의 경우에는

도형의 이름을 활용하여 

i를 반복시켜 도형 안에 

숫자를 넣어줬습니다.

 

반대로 FOR_EACH_NEXT문은

활성화되어 있는 시트 안에

도형 중에 순환할 때마다 

숫자 1이 커지게 설정하고

숫자를 도형 안에 적게 했죠

(또한 시트 안에 다른 도형도

있을 것을 대비하여 REC라는

공통적인 이름을 가진 도형만

적용되도록 설정하였습니다.) 

 

이렇게 도형이 나오더라도 

도형의 이름을 활용하여 

FOR_NEXT문을 사용 가능하며

굳이 도형 이름 없이도 

FOR_EACH_NEXT문을

활용할 수 도 있을 것입니다.

 

편하신 방법으로 코드를

작성하시면 되며

변수를 숫자로 할지 또는

객체로 할지 기억만 해주시면 됩니다.

 

그럼 여기까지 궁금하신 점은

댓글에 남겨주시고

공감구독도 부탁드립니다.

 

 

 

 

Comments