'엑셀 색깔별 합계'에 해당되는 글 1건

  1. 2015.11.29 [엑셀 VBA 에제3] 엑셀 색깔별 합계 구하기 2

[엑셀 VBA 예제3] 엑셀 색깔별 합계 구하기





이번 포스팅에선 엑셀 색깔별 합계를 구하는 예제를 살펴보겠습니다.


선택된 범위 안에서, 선택된 셀의 색깔로 칠해진 값의 합을 구하는 예제입니다.


사용하기 편하도록 Function 을 사용해서 사용자정의 함수를 만들어 보겠습니다.


예제를 받고 따라와주세요.







사용자정의 함수란?


사용자정의 함수는 엑셀에 기본으로 탑제된 함수 이외에 필요한 기능이 있을 경우, 사용자가 직접 만드는 함수를 말합니다.


일반 함수와 같이 "=함수이름(인수1,인수2,인수3......,인수N)" 의 형식으로 엑셀에서 사용할 수 있습니다.


사용자정의 함수 코드는 모듈을 생성해서 작성해야 합니다.










위와 같이 숫자가 담긴 셀에 색깔이 채워져 있을 경우, 색깔 별로 합계를 구하려고 합니다.





※ 사용자정의 함수는 시트에 코드를 짜면 안되고 꼭 모듈을 생성해서 만들어 줘야 합니다.


Public Function colorsum(rngcolor, rng As Range)   '함수 이름은 colorsum, 인수는 '지정색깔(rngcolor)', '합계범위(rng)'


Dim sum As Long  '구할 합계 sum 변수설정

Dim SearchColor as Long  '색깔 변수 설정


sum = 0  '합계 초기값 설정


SearchColor = rngcolor.Interior.color    '첫 번째 인수인 rngcolor에 지정된 셀의 색깔값을 SearchColor에 지정


For Each rngn In rng        '두 번째 인수인 rng의 범위 안에서 처음부터 끝까지 순환


If rngn.Interior.color = SearchColor Then    '해당 셀의 색깔이 rngcolor의 색깔과 같다면

sum = sum + rngn.Value            '합계에 해당 값을 더한다

End If


Next                '그 다음 셀으로 이동


colorsum = sum            '출력할 함수값 지정


End Function






코드를 작성한 후 엑셀 시트에서 일반 함수를 사용하는것처럼 값을 입력하면 색깔 별 합계를 구할 수 있습니다.


함수의 첫 번째 인수는 합할 색깔이 있는 셀을 선택하고, 두 번째 인수는 합계 범위를 지정하면 됩니다.


파란색 합계를 구하고 싶은 경우 A1를 C1으로 바꾸면 되겠죠? 





함수를 실행하면 위와 같이 값을 구할 수 있습니다.


Posted by Simon K
: