• 최초 작성일: 2002-09-10
  • 최종 수정일: 2026-09-30
  • 조회수: 9 회
  • 작성자: 권현욱 (엑셀러)
  • 강의 제목: 이름 숨기기와 나타내기

들어가기 전에

오래 전 엑셀 파일로 진행하던 강의를 웹 글로 복원한 것이라, "버튼을 눌러보세요"처럼 엑셀에서 직접 조작하라는 표현이 남아 있을 수 있습니다. 결과는 본문의 그림이나 표로 확인하실 수 있으며, 현재와 맞지 않는 내용은 보완하되 전반적인 스타일은 당시의 갬성(?)을 유지했습니다.

I want to die knowing one more thing. 나는 한 가지라도 더 알면서 죽고 싶다.

유명한... 소크라테스가 한 말입니다. '알고 죽는' 것이 아니라 '알면서 죽는다'는 표현이 가슴에 와 닿습니다.

권현욱(엑셀러)
저자: 권현욱(엑셀러), 아이엑셀러 대표

필자는 Excel 컨설턴트, 작가, 그리고 크리에이터입니다. 현재 Microsoft Excel MVP이며, 『챗GPT+엑셀 업무자동화 정석』을 비롯한 10여 권의 도서를 집필했습니다. Excel 자동화 및 생산성 향상 분야에서 25년 넘는 경력을 보유하고 있습니다.

권현욱(엑셀러) 님의 최신 포스트:
  • 최신 글을 불러오는 중...


26년 경력 Microsoft MVP 권현욱(엑셀러) 대표 직강 1강 무료

🎁 파워툴스 마스터클래스 · 엑셀 바이브 코딩

AI에게 말로 지시해서 '나만의 엑셀 도구'를 만들고 리본에 장착합니다.

  • 코딩 지식 없이 시작 · 코드는 AI가 작성
  • 엑셀 리본에 내 탭과 버튼을 만들고 XLAM으로 공유
  • 1강 무료 수강 가능
수강 신청하기 강의 소개 보기

이름 숨기기와 나타내기

핵심 요약: 이름 숨기기와 나타내기

Name 개체의 Visible 속성을 False로 지정하면 이름을 삭제하지 않고 이름 상자와 이름 정의 대화상자에서 감출 수 있습니다.

  • 1단계: ThisWorkbook.Names의 모든 Name 개체를 For Each로 순환합니다.
  • 2단계: Visible 속성을 False로 지정해 이름을 숨깁니다.
  • 3단계: Static 변수를 반전시켜 실행할 때마다 숨김과 표시를 번갈아 처리합니다.

Step 1: 이름 정의 확인하기

영역(Range)에 이름을 정의해 두고 사용하면 여러 모로 편리하다는 것은 그동안 누차 강조를 하였으므로 다들 아실 것입니다.

현재 워크북에 어떤 이름들이 정의되어 있는 지 확인하려면 이름 상자(Name Box)를 클릭하거나 '삽입-이름-정의' 메뉴를 선택해 보면 됩니다.

이름 정의 대화상자에 Range1, Range2, Range3 이름이 표시된 화면
아이엑셀러
이름 상자의 드롭다운 목록에 Range1, Range2, Range3이 표시된 화면
아이엑셀러

Step 2: 이름 숨기기

그런데 경우에 따라서는 이렇게 이름을 지어놓은 것을 감추어 버리고 싶을 경우가 있을 것입니다. 버튼을 누른 다음 이름 박스 또는 '삽입-이름-정의' 메뉴를 선택해 보세요. 이름들이 감쪽같이 사라져 있을 것입니다.

Sub HideAllNames()

    Dim nmeName As Name

    For Each nmeName In ThisWorkbook.Names
        nmeName.Visible = False
    Next nmeName
    MsgBox "이름을 모두 감추었습니다", , "www.iExceller.com"

End Sub

Name 개체의 Visible 속성을 False로 지정하면 이름은 삭제되지 않고 목록에서만 보이지 않게 됩니다.

Step 3: 이름 숨김/표시 전환하기

이번에는 버튼을 누를 때마다 이름이 나타났다 숨겨졌다 하도록 해 볼까요?

Sub HideAndShowNames()

    Dim nmeName As Name
    Static blnShow As Boolean
    ' 버튼을 누를 때마다 기존의 값을 보관하고 있도록 하기 위해 Static 변수를 하나 선언하였습니다.

    For Each nmeName In ThisWorkbook.Names
        nmeName.Visible = blnShow
    Next nmeName
    blnShow = Not blnShow
    ' 프로시저를 한번 실행할 때마다 논리값을 반대로 바꾸어 줍니다.

End Sub

Step 4: Global Name과 Local Name

이름에 대해 얘기가 나온 김에 한 가지 더! 이름은 크게 Global Name과 Local Name으로 나눌 수 있습니다.

Global Name 이라는 것은 워크북 전체에 걸쳐 사용할 수 있는 이름이고, Local Name 이라는 것은 특정 워크시트에서만 사용할 수 있는 이름을 의미합니다. 변수에서도 전역 변수와 로컬 변수가 있었지요? 이와 비슷한 개념입니다.

Global Name은 우리가 지금까지 위에서 살펴본 일반적인 이름이라고 생각하시면 되겠습니다. 즉 범위를 지정하고 이름 상자에 적당한 이름을 입력한 다음 엔터키를 치면 Global Name으로 지정이 되는 것이지요.

그렇다면 Local Name은 어떻게 정의하느냐? 범위를 지정한 다음, ''시트명!이름명'과 같이 이름 앞에 시트명! 표시를 함께 붙여주면 됩니다. 만약 워크북에 Global Name과 Local Name이 같은 것이 있다면 해당 시트 내에서는 Local Name이 우선합니다.

현재 워크북에는 5개의 이름이 정의되어 있습니다. 이 중 4개는 Global Name이고 나머지 하나는 Local Name입니다. 시트를 이동해 가면서 확인해 보세요.

오늘은 여기까지…

정리 — 이름 숨김·표시 핵심 코드

구분 사용한 코드 역할
이름 순환 For Each nmeName In ThisWorkbook.Names 모든 이름 접근
숨기기 nmeName.Visible = False 이름 감추기
전환 blnShow = Not blnShow 논리값 반전
값 보존 Static blnShow As Boolean 실행 간 값 유지
Local Name 시트명!이름 특정 시트에서만 사용

자주 묻는 질문 (FAQ)

Q1. 이름을 숨기면 삭제되는 건가요?

아닙니다. Visible 속성이 False가 되어 목록에서 보이지 않을 뿐 이름은 그대로 사용할 수 있습니다.

Q2. Global Name과 Local Name은 무엇이 다른가요?

Global Name은 통합 문서 전체에서, Local Name은 특정 워크시트에서만 사용할 수 있는 이름입니다. 같은 이름이 있으면 해당 시트에서는 Local Name이 우선합니다.

Q3. Local Name은 어떻게 정의하나요?

범위를 선택하고 이름 상자에 시트명!이름 형태로 시트 이름을 붙여 입력하면 됩니다.

마치며

이름을 숨겨 두면 사용자가 실수로 이름을 건드리는 일을 줄일 수 있습니다. Static 변수를 이용한 전환 방식도 함께 익혀 두시기 바랍니다.