Skip Navigation Links.
Expand VBAVBA
엑셀프로그래밍이 필요한 이유
Expand ExcelExcel
Expand External LibraryExternal Library
Expand SolutionSolution
Expand EssayEssay

WorkSheet|Visible|Array()|Select|Activate|CodeName|

워크시트의 숨기기

워크시트를 사용자의 눈에 보이지 않게 감추고 싶을때
여러시트를 한꺼번에 감추고 싶다면

Sheets(Array("Sheet1","Sheet2")).Visible=False
혹은
Worksheets(Array("Sheet1","Sheet2")).Visible=False

만약 Chart시트를 모두 감추고 싶다면

Charts.Visible=False
라고 하면 모든 챠트시트는 감춰 진다
이것은 앞페이지에서도 설명했던것이고
사용자가 서식/시트/숨기기취소를 통하여 숨긴 시트를 다시 보이게 하는것까지
못하게 하고 싶을때가 있을것이다
이때는

Worksheets("시트이름").Visible=xlVeryHidden

으로 해주면 프로그래믹한 처리를 하지 않으면 사용자가 볼수 없다

Select와 Activate의 차이

Range오브젝트에서도 강조하였지만 워크시트에도
Select와 Activate를 구별할줄 알아야 한다
또한 프로그래밍을 할때는 최대한 Select와 Activate를 사용하지 않도록
하여야 한다
Select와 Activate를 사용하면 초보자의 솜씨라는것을 금방알게 된다
그래도 어떤것인지는 알아야 하니까..아래의 그림을 보도록 하자
아래의 그림은 Worksheets(Array("keyword","checklist","studio")).Select된 상태이다
Worksheets("keyword").Activate
Worksheets("checklist").Activate
Worksheets("studio").Activate


선택된 상태와 활성화된 상태를 구별할수 있을것이다
만약에 "keyword"라는 시트가 활성화된 상태에서
Worksheets("checklist").Range("A1").Select
라고 한다면 어떻게 될까??
에러가 나는것이다..먼저 "checklist"시트를 활성화시킨후
Worksheets("checklist").Range("A1").Select
라고 하여야 에러가 나지 않는다
초보님들이 Select를 자주 사용하는 바람에 겪는 에러들이다
경우에 따라서는 원인을 찾겠다고 밤을 샌다
그래서 Select나 Activate는 최대한 사용하지 말기를 한번 더 강조한다

워크시트에 보다 쉽게 접근하는 CodeName속성

Worksheets("시트이름")등으로 접근하게 코딩을 했을때
사용자가 시트이름을 다른 이름으로 바꿔버리면
퍼퍽 에러가 나게 된다
당연하지 ..찾아가려고 하는 시트이름이 행방불명이 되었으니
그런것을 걱정하지 않아도 되는것은 워크시트의 또다른 속성
CodeName속성으로 접근하는것이 안전하고 편리하다

그림과 같이 워크시트는 Name속성과 CodeName속성을 제공한다



또한 시트의 Name이나 CodeName을 의미있는 이름으로 바꿔주고
싶다면 그림과 같이 다른곳에서 바꾸어준다는 점!!아시기 바란다



어떤 시트의 CodeName속성의 값이 SAMPLE이고
Name속성이 또한 SAMPLE일때(같아도 상관없다)
해당 시트의 Range("A1")에 접근할때

SAMPLE.Range("A1")은
Codename속성으로 직접접근하는것이고

Worksheets("SAMPLE").Range("A1")은
Name속성으로 접근하는것이다

어느것이 편리한지는 한눈에 알수 있을것이다