본문 바로가기

VBA271

[VBA_Dictionary] 데이터 재배치 앞서 SELECT CASE를 통해 데이터 재배치를 해보았다. 먼저도 언급했지만 SELECT CASE는 고유값이나 선택 구간들이 조금이라도 늘어난다면 그 늘어난 구간만큼 코드들을 더 나열해야 함으로 반 하드코딩이라고 해도 과언이 아니다. 고유값을 도출하고 그 값에 따른 재가공이 필요하다면 그냥 D.I.C.T.I.O.N.A.R.Y 쓰면 된다. 잘 모르겠으면 그냥 외우길 추천한다. 한번 외우고 사용하는게 당신의 생명연장 꿈을 이뤄줄 수 있다. 데이터 영역안에서 딕셔너리의 키값과 아이템값을 모두 도출하였다면 여전히 뜨거운 감자인 딕셔너리의 키값과 아이템을 우리가 보기 원하는 방향으로 행열변환을 해야하는 순간과 맞닿게 된다. 가장 빠르고 편한 것은 APPLICATION.TRANSPOSE로 키값과 아이템값을 한번에.. 2021. 8. 10.
[VBA_Select Case] 데이터 재배치 엑셀로 점수별 등급 나누는 문제는 엑셀을 접한 분들은 한번씩 거쳐가는 통과의례 같은 문제이다. 허나 참 중요한 구문인것을 부인할 수도 없기에 엑셀로 작업을 할때 IF에 IF에 IF를 거쳐 의식이 2% 정도만 남아 있을 때까지 해야 IF 지옥에서 빠져나올 수 있다. 오늘 소개할 구문은 SELECT CASE 구문이다. SELECT CASE 값 CASE IS => 90:RANGE("A2") = "우수" CASE IS => 80:RANGE("A2") = "보통" CASE IS => 70:RANGE("A2") = "위험" CASE ELSE : RANGE("A2") = "낙제" END SELECT CASE IS -> 부등호를 동반할때 ---------------------------------------------.. 2021. 8. 9.
[VBA_Sum vs Consolidate] 병합과 합계구하기 몇일전 같은 연번 내에서 부분합을 구하는 코드를 작성하면서 Consolidate의 발견은 나에게 만큼은 콜롬버스의 신대륙 같은 것이었다. 해서 몇일전 비슷하게 작성했던 코드를 심기일전하여 이 게임체인저 같은 녀석을 적용시키기 위해서 코드를 비교해보기로 했다. 공동코드는 기준점인 rngM을 기준으로 병합된 셀의 크기를 M_cnt 변수에 담아서 같은 연번을 resize의 크기로 영역을 한정하였다. 처음 코드는 한정된 영역을 엑셀 함수인 Sum함수로 그 영역의 합계를 구하였다면, 두번째 코드는 Consolidate로 합계를 구하였다. 육안으로 보기에도 처음 코드가 더 깔끔해 보일것이다. VBA를 처음 입문할 때 엑사남님께서 이런 말을 하신적이 있다. VBA 잘하고 싶다고요 그럼 엑셀을 공부하세요 그렇다. VB.. 2021. 8. 8.
[VBA_Consolidate] 부분합 구하기 몇일전에 같은 연번내에서 부분합 구하기를 한 적이 있다. 하면서도 문제에 비해서 너무 요란하게 코드를 작성하는게 아닌가 싶어서 구글링을 했더니 그 긴 코드가 한줄로 가능한것을 보고 역시 세상을 넓다는 걸 또 한번 느꼈다. 중복값을 피해서 고유값을 도출하는 코드들은 찾아보면 많은데 고유값을 도출해서 값들의 합계를 구하는 코드들은 많이 없어 내가 느낀 새로움을 박제하고자 글을 쓴다. 물론 엑셀로 하면 어렵지않게 할 수 있는 코드들이지만 VBA 통해서 이뤄낸 성과에 칭찬 칭찬하다. Consolidate는 더 공부해서 심도 있게 다룰려고 한다. 통합코드로서 최근에 본 코드중에서 심히 구미를 당기는 녀석이다. 2021. 8. 7.