본문으로 바로가기

엑셀 시트 이름 충돌 시 매크로 vba로 해결

category 엑셀 2020. 4. 28. 02:37

엑셀 이름정의 삭제 매크로 vba로 해결

엑셀 파일 여러사람이 함께 작업하는 경우 엑셀 시트 이름 충돌 오류가 발생되는 경우가 있습니다. 

이런 경우 엑셀 응답이 없기도 하는데요. 

전달 받은 문서에  개인마다 이름정의를 하고 공유폴더나 형상관리 사이트에 올리면 다른 사람이 엑셀 파일을 열어 이름 정의를 검색하기 때문에 응답이 없어 위와 같은 오류 메시지가 발생되는 겁니다. 


엑셀 이름관리자를 조회하면 많은 부분의 이름정의가 되어있을건데요.

이름 충돌 발생 시 vb를 이용하면 쉽게 해결할 수 있습니다.






먼저 엑셀에 이름관리자를 열어서 이름을 먼저 확인해보겠습니다. 

상위 메뉴 중 [수식]- [이름관리자]를 선택합니다. 

엑셀 이름정의 삭제 매크로 vba로 해결




이름 관리자 창이 열리면 우측 [필터]를 선택합니다. 메뉴가 뜨면 [오류 있는 이름]을 선택합니다. 

목록이 조회되면 모두 선택 후 [삭제]버튼을 클릭합니다. 


이렇게 해서 해결되면 vb까지 사용할 필요는 없습니다. 


 [오류 있는 이름]을 선택





하지만 위 방법으로 해결되지 않는 부분이 있기 때문에 VB를 이용해서 해결하는 겁니다. 

이름정의에 숨어있는 이름이 있어서 삭제를 하지 못하는건데요.

시트 하단에 마우스 오른쪽 버튼을 클릭 후 [코드 보기] 를 선택합니다 


주의 : VB를 돌리면 삭제된 이름정의를 복구할 수 없기 때문에 백업을 하신 후 진행하시기 바랍니다. 

마우스 오른쪽 버튼을 클릭 후 [코드 보기]



Microsoft visual Basic for Applications가 열리면 

편집창에 아래 첨부파일 내용을 넣어서 붙여넣기 합니다. 


이름충돌삭제.txt 


Microsoft visual Basic for Applications




F5키를 눌러 실행을 하면  "X개의 이름이 있습니다. 모두 삭제하시겠습니까?"

라고 나오면 예를 클릭해시주시면 이름 정의가 모두 삭제 됩니다.


F5키를 눌러 실행을 하면  X개의 이름이 있습니다

이상 엑셀 시트 이름 충돌 시 매크로 vba로 해결방법을 알아보았습니다. 

반응형