초보용

왕 초보용 엑셀 매크로(VBA) 배우기 - 3 (중복 행 찾기 2/4)

by 지천명영어 posted Jan 12, 2022
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

가 크게 작게 위로 아래로 댓글로 가기 인쇄

제가 엑셀 매크로(VBA)을 배운 첫번째 이유

​

제가 엑셀을 배운 이유는 2가지입니다.

​

첫째, 수학과 숫자를 싫어했지만, 많은 월급에 현혹되어 금융회사에 취직을 하게 됩니다. 그런데 그 당시에 회사에서는 주판(주산)을 사용하고 있었습니다. 

​

매일매일 엄청난 숫자를 정확하게 기입해야 하는 일을 주업으로 하다 보니, 주판을 배워서 일을 하던지, 주판에 필적할 대안을 찾아야 했습니다.

​

그래서, 종로서적을 찾아 가서 엑셀3.0 따라잡기 책을 사고 엑셀 공부를 시작하게 되었습니다.


 

왕 초보용 엑셀 매크로(VBA) 배우기 - 2에서 알아본 엑셀 매크로(VBA)는 2개의 셀에서 이름이 같으면서, 동시에 그 행에 있는 핸드폰번호도 같은 경우를 찾아내는 매크로였습니다.

​

그런데 실제로 우리에게 주어진 데이터는 너무너무 지저분합니다.

그래서, 데이터를 서로 비교하기 쉽도록 정비해야 합니다.

​

1. 이름(문자) 데이터 정리하기

​

① 시작 문자 왼 여백과 끝 문자 여백 없애야 합니다.

② 이름 사이사이에 있는 공백 문자를 없애야 합니다.

③ 눈에 안 보이는 줄바꾸기(캐리지 리턴)이 있는 경우 없애야 합니다.

 

이미지 001.png

 

​

위의 쉬트에 1번 회원은 성과 이름에 공백(스페이스)가 1개 들어있으며,

7번 회원은  이름 앞에 공백(스페이스)이 1개 있습니다.

8번 회원은 눈에는 안 보이지만 줄바꿈(캐리지 리턴) 문자가 1개 들어있습니다.

​

이미지 002.png

 

 

이 세 가지를 정리하는 방법은 아래와 같습니다.

① Cells(i, 2) = Replace(Cells(i, 2), " ", "")

B 칼럼에 있는 회원이름에서 공백을 찾아서 없애라는 명령입니다.

왼쪽에 있는 셀에는 오른쪽에 있는 셀에서 공백을 찾아서 없애라입니다.

이 replace 명령은 참 많이 쓰는 명령어입니다. 엑셀 쉬트에서 쓰는 함수 = SUBSTITUTE와 완전히 같습니다.

​

② Cells(i, 2) = Trim(Cells(i, 2))

B 칼럼에 있는 회원이름에서 왼쪽 문자 시작 앞에 있는 공백을 삭제하고, 동시에 끝에 있는 공백을 없애 줍니다.

엑셀 매크로(VBA)의 장점이 여기서 드러납니다. 셀에서 사용하는 함수(=TRIM)와 완전히 같은 방식으로 VBA에서 사용됩니다.

​

Trim 명령어는 모든 문자열 정리를 할 때 필수 사항입니다.

​

③ Cells(i, 2) = Replace(Cells(i, 2), Chr(10), "")

캐리지 리턴을 없애는 방법은 사실 ①번  replace 명령의 재활용입니다.

​

공백을 찾을 때는 " "(따옴표 속에 공백)을 넣어 주면 되지만, 눈에 안 보이는 캐리지 리턴은 그렇게 넣어주기 쉽지 않습니다.(하지만, 실제로 셀에 있는 캐리지 리턴을 복사해서 넣어도 작동은 됩니다.)

여기서 VBA 활용도를 좀 더 높이기 위해서 문자열 코드를 배워봅니다.

 

 

이미지 003.png

 

 

엑셀 쉬트에서 문자 코드를 알아보는 함수는 =Code(셀주소)입니다.

위에 표에 보이는 것처럼 캐리지 리턴은 눈에 보이는 문자는 없지만 코드는 10번을 가지고 있습니다.

​

여기서 엑셀 매크로(VBA)의 엄청난 장점을 한가지 더 보게 됩니다.

엑셀 매크로(VBA)는 어려운 코드를 암기할 필요도 당연히 없으며, 코드표를 찾을 필요도 없습니다.

왜냐하면 엑셀 쉬트의 셀에 문자를 넣고, =coce(셀주소)를 넣기만 하면 코드를 알려줍니다.

다른 프로그램 언어에서는 절대 할 수 없는 큰 장점입니다.

​

코드를 가지고 문자열로 바꿔주는 명령어는 Chr(코드번호)입니다. 

​

이상으로 간단하게 이름 문자열을 정리하는 방법에 대해서 설명을 마침니다.

​

계속해서 다음 편에 핸드폰번호 정리하는 방법에 대해서 알아보도록 하겠습니다.

​

왕초보용_매크로(VBA)_3.xlsm  파일 다운로드

​


Articles

1 2 3