Lost Information!

엑셀 VBA 기초 - 진정한 자동화를 원하다면 - 1편 본문

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

엑셀 VBA 기초 - 진정한 자동화를 원하다면 - 1편

Lostinformation 2020. 9. 21. 20:46

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

지난 글까지 엑셀 VBA 반복문IF문

그리고 두 개의 활용까지 

설명해 드렸었는데요.

 

생각해보면 프로그래밍을 할 때

 

 

데이터의 값을 보고 제가 직접

어디부터 어디까지 라고

구간을 지정해 주었는데요.

 

그렇기 때문에 진정한 자동화라고

말할 수는 없었습니다 ㅠㅠ

 

그래서 오늘은 알아서 

마지막 행렬까지 찾아서 

자동화하는 방법에 대해 

알려드리도록 할게요~

 

(이제 슬슬 칼퇴를 위한

스킬들이 하나씩 공개됩니다.) 

 

 

먼저 이렇게 실적을

나타내는 표가 있다고 

가정을 해볼게요.

 

각각의 실적에 대해 

95 미만인 지점은 해당 실적을

빨간색으로 변하도록 코딩은

해볼 텐데요.

 

지난 글과 겹치는 부분들도

있을 수 있으니 복습하면서

어떤 새로운 방법을 

쓰는지 확인해보시면 

더욱 좋을 것 같습니다.

 

먼저 Alt + F11 버튼을 

눌러주시고요.

(비주얼 베이직 단축키입니다.)

 

오른쪽 마우스 누르고 

삽입에서 모듈 누르시는 거

안 까먹으셨죠?

 

이후에 sub 적어주시고 

만들어지는 코딩 이름

적어주시면 되는데

저는 test로 하겠습니다.

 

 

지난 글에서 배운 것처럼

이렇게 적어주시면 95보다

작은 숫자 값들은 빨간색으로

변경되는 것 보실 수 있을 텐데요.

 

복습으로 설명해드리면 

 

Dim i As Long

변수 타입이 숫자인 i라는 

변수를 설정할 거야    


For i = 2 To 16
i는 2부터 16까지 변경하며     

 

If Cells(i, 2) < 95 Then

셀 안의 값이 95보다 작다면             

 

Cells(i, 2). Font.ColorIndex = 3

셀 안의 폰트 색깔을 3번

인덱스 색상으로 변경해줘

 

(3번 인덱스는 빨간색입니다)

 


   

위의 코딩을 적고 실행하게 되면

이렇게 변경되는 걸 볼 수 있게 되죠.

하지만 만일 이렇게 긴 표가

있다면 어떻게 할까요?

 

만일 아까 코딩 그대로 

실행하게 된다면 상수를

16까지 밖에 설정하지 

않았기 때문에 31행까지는

인식하지 못할 겁니다.

 

결국 데이터의 양을 보고

내가 다시 수정해줘야 하고

데이터의 양과 관계없이

16행까지밖에 인식하지 못하는

코딩이 돼버린 거죠.

 

그렇다면 도대체 어떻게 

코딩을 해야 알아서 마지막 행

또는 마지막 열의 번호를

알아서 인식할 수 있을까요?

 

 

바로 이렇게 적어주시면 되는데요.

추가된 문장을 설명드리면 

 

Dim A As Long
변수 타입이 숫자인 A라는

변수를 설정할 거야    

   
A = Range("B1000"). End(xlUp). Row

A는 B 1000셀부터 위로 올라오면서

마지막 행의 번호를 찾아

    
For i = 2 To A

그리고 변수는 2부터 A까지야

 

결국 이렇게 변수를 두 개

설정하는 것만으로도 

이제는 굳이 같은 표의 형식이라면

데이터의 양과 관계없이

원하는 색으로 변경하실 수 

있게 된 거죠.

 

바로 이렇게요.

우리의 칼퇴를 위해서는 

정말 많은 양의 표를 보고

데이터를 처리해야 하는 만큼

꼭 기억해주시면 도움이 

되실 거라고 생각하고요.

 

궁금하신 점 있으시면 댓글

부탁드리겠습니다.

 

공감구독도 부탁드리고요. 

Comments