전체 글 36

사용자 정의 함수 사용하기

어느 분이 질문을 하셔서 사용자 정의 함수를 만들었습니다. 사용자 정의 함수 사용하는 방법을 소개하겠습니다. 완성 파일 다운로드 만든 사용자 정의 함수는 최근 3개 시험 점수 평균을 구하는 역할을 합니다. [T5] 셀에서 김치국 학생 국어 과목의 평균 성적을 구합니다. 3월 15일과 3월 5일엔 응시하지 않아 점수가 없습니다. 2월 15일, 2월 5일, 1월 15일이 최근 3번 응시한 성적입니다. 그래서 [E5], [H5], [K5] 셀 점수 합을 구해 3으로 나눈 값을 [T5] 셀에 나타내려고 하는 겁니다. 다른 과목도 마찬가지입니다. 키를 누르면 Visual Basic for Appications Editor(VBE)가 실행됩니다. 평균성적이란 이름으로 함수를 만들었습니다. 인수는 과목명과 계산범위를..

엑셀 2020.05.09

엑셀 VBA로 자료 처리 - 신청자, 회원목록 비교 2

일을 맡기로 하고 집으로 돌아오는 길에 어쩐지 쎄하다 싶었더니 작업량이 만만치 않았습니다. 코딩으로 처리하는 것은 당연히 그렇다고 쳐도 잘못된 형식으로 등록된 데이터를 수정하는 작업에 아주 많이 시간이 소요되고 있습니다. 아침에 일어나자마자 시작해서 밤늦게까지 작업해야 겨우 할 수 있는 수준이죠. 첫날에 코딩 구현도 하고 적용도 해야 해서 12시를 넘어 작업하지 않을 수 없었습니다. 이건 뭐 예상한 일이니까 그렇지만, 문제는 처리한 작업을 넘긴 후에도 계속 추가 작업을 해야 한다는 것이었습니다. 특히 처리한 일을 요구사항이 달라져서 다시 해야할 때는 아주 짜증스럽습니다. 겨우 1차 처리 기한에 맞춰 결과물을 넘기고 다음주까지 한숨 돌리나 했더니 중복자 처리와 추가 처리자 자료가 넘어 와 계속 작업을 하지..

엑셀 2020.05.02

Range.Interior 개체와 Range.DisplayFormat.Interior 개체

VBA로 작업하다 보면 확인된 셀에 표시하기 위해 Color나 ColorIndex 속성을 이용해 채우기 색을 지정하게 됩니다. 이 때 Range.Interior 개체를 이용해 색상을 지정합니다. Range("A1").Interior.ColorIndex=19 이렇게 표시된 색상을 다음번 처리할 때 셀에 채우기가 설정되었는지 아닌지로 조건 처리를 하게 됩니다. 그런데 조건부서식을 통해 색상을 지정한 셀은 Range.Interior 개체로는 확인되지 않습니다. 이럴 때 필요한 개체가 Range.DisplayFormat 개체입니다. If Range.DisplayFormat.Interior.ColorIndex=19 Then MsgBox "확인" End If 직접 채우기 색을 지정한 것 뿐만아니라 조건부서식과 같이..

엑셀 2020.04.29

엑셀 VBA로 자료 처리 - 신청자, 회원목록 비교

며칠전 지인이 일을 좀 도와 달라고 연락이 왔습니다. 신청자 파일과 회원 목록 파일을 비교해 정상 회원인지 확인하고, 잘못된 신청자를 제외한 나머지를 신청확정 파일로 정리하는 작업이었습니다. 신청자 파일, 회원 목록 파일, 신청확정 파일 모두 엑셀 파일이라 엑셀 VBA를 이용하면 딱 좋은 업무라고 생각했습니다. 총 데이터 건수는 100,000건 정도인데, 각 지역별로 나눈 8개 파일이고, 파일 중 많은 데이터는 35,000건 정도였습니다. 모두 모아 한꺼번에 처리할까 했는데, 어차피 나눠져 있어 그냥 나눠진 파일 단위로 처리하기로 했습니다. 그런데 파일을 나누지 않고 작업했더라면 정한 시간 내에 처리 못할 뻔 했었습니다. 방문해 처리 내용을 듣고, 데이터를 잠깐 봤는데, 신청자 파일에 입력 형태가 엉망이..

엑셀 2020.04.28