사무자동화 프로그램 중 하나인 엑셀로 작업을 하다 보면 자신이 모르는 스타일이 삽입되어 있거나 셀 서식 오류가 발생한다.
스타일과 셀 서식 오류는 하나의 컴퓨터에서 자신만 엑셀 문서를 작업하면 에러가 발생하지 않는다. 하지만, 회사 업무를 하다 보면 다른 사람이 작성한 문서를 참고해서 복사 및 붙여 넣기를 하는데,
이 과정에서 원본 문서의 스타일이 그대로 적용되어 수많은 스타일이 쌓이게 되고 결국 엑셀 속도가 저하되는 문제가 발생한다.
보통 스타일은 필요하지 않은 스타일을 선택해서 삭제한다. 하지만, 스타일이 수 백개가 있다면 수동으로 삭제하기까지 시간이 너무 오래 걸리고, 추후 자신이 모르는 스타일이 추가될 때마다 수동으로 삭제한다면 너무 비효율적이다.
엑셀은 각 셀의 값을 자동으로 계산할 수 있게 다양한 함수가 구현되어 있다. 하지만, 함수로 처리할 수 없는 자동화를 매크로 기능을 이용해서 처리할 수 있다.
매크로를 자유롭게 다룰 수 있다면 필요 없는 스타일 삭제, 입력받은 개수만큼 시트 추가 및 삭제, 셀 자동 복사 및 붙여 넣기, 엑셀 속도 높이기 등 함수로 처리할 수 없는 것들을 수행할 수 있다.
본 포스팅은 매크로를 이용하여 필요하지 않는 스타일을 삭제하는 방법과 이름 관리자를 이용해 오류가 있는 수식을 해결하는 방법을 소개한다.
엑셀 스타일 삭제하는 방법
기존에 작업한 엑셀 문서 또는 새로운 엑셀 문서를 열고 키보드 자판의 Alt + F11 키를 동시에 누른다.
Alt + F11 키는 엑셀 함수에서 지원하지 않는 다양한 업무 자동화를 도와주는 매크로를 만들 수 있는 창이 제공된다. 매크로를 만들려면 기본적으로 비주얼 베이직 스크립트를 알아야 한다.
매크로를 만들 수 있는 창이 나타났으면 상단 메뉴에서 삽입(I) > 모듈(M) 순서로 클릭하고 아래의 소스코드를 복사해서 그림과 같이 붙여 넣는다.
소스코드를 간략히 살펴보면 셀스타일삭제() 함수를 만들고, 함수 내의 엑셀 워크시트에 존재하는 모든 스타일을 구하고,자동으로 삭제하는 비주얼 베이직 기반의 스크립트이다.
Sub 셀스타일삭제()
Dim cell_style As Style
Dim i As Integer
On Error Resume Next
For Each cell_style In ThisWorkbook.Styles
If Not cell_style.BuiltIn Then cell_style.Delete
i = i + 1
Next
MsgBox i & "개의 셀 스타일 삭제 완료!!!"
End Sub
매크로 편집기 창을 최소화하고 엑셀 워크시트 창을 최대화한다.
상단 메뉴에서 보기 > 매크로 > 매크로 보기 (단축키 : Alt + F8) 순서로 클릭하면 매크로를 실행할 수 있는 함수 이름(셀스타일삭제)이 등록되어 있다.
셀스타일삭제 함수를 선택하고 실행 버튼을 클릭하면 자동으로 스타일을 삭제하고, 스타일을 삭제한 개수를 창으로 보여준다.
스타일을 자동으로 삭제하는 매크로를 만들어 봤는데, 매크로의 진정한 목적은 업무 자동화라고 언급했다.
자동화란 수 천 개의 시트 생성 및 삭제, 수 천 개의 셀 생성 및 삭제, 자동으로 칸 늘리기, 엑셀 실행 속도 빠르게 하기 등 다양한데 이런 것들을 각 용도에 맞게 매크로를 만들어 놓고 필요에 따라 재사용할 수 있다.
기존의 작업한 문서 또는 새로운 문서에서 매크로를 생성하고 실행했다. 하지만, 매크로를 생성한 엑셀 문서롤 종료하고 다시 실행하면 매크로가 등록되지 않아 실행되지 않는다.
엑셀에서 매크로는 기본적으로 xlsm 확장자를 가진 문서만 실행할 수 있다. 해당 확장자는 매크로를 실행할 수 있는 환경이 구축되어 있는 문서이다.
현재 매크로를 만든 상태에서 파일 > 다른 이름으로 저장 > 찾아보기 > 파일 형식 : Excel 매크로 사용 통합 문서 (*.xlsm)을 선택하고 저장 버튼을 클릭한다.
xlsm 확장자를 가진 엑셀 문서가 새로 생성되며, 앞으로 각 용도에 맞는 매크로를 만들 때 해당 문서에서 작업하고 저장하면 된다.
엑셀 오류가 있는 수식 삭제하는 방법
엑셀로 작업한 문서를 다시 열어보면 오류가 있는 수식(셀서식 오류)의 문제로 테두리 굵기, 글자 정렬, 함수 계산 등이 제대로 처리되지 않는다.
오류가 있는 수식을 삭제하는 방법도 매크로를 이용하면 된다. 하지만, 매크로를 이용하는 것보다 엑셀에서 이름 관리자 창을 이용하면 더 간단하게 해결할 수 있다.
상단 메뉴에서 수식 > 이름 관리자 > 필터 > 오류가 있는 이름 순서로 클릭하면 오류가 있는 셀 서식이 나열된다.
값이나 참조 대상에 #REF!로 나타나는 것이 오류가 있는 셀 서식이다. 오류가 있는 것들을 드래그를 한 후 삭제 버튼을 클릭하면 깔끔하게 정리가 된다.