EXCEL VBA

엑셀 VBA에서 시트에 접근하는 두가지 방법(시트이름, 코드네임)

카루루1007 2024. 2. 15. 16:13
728x90
반응형
SMALL

[ 들어가며 ]

 

오늘은 엑셀의 시트에 접근하는 방법에 대해

간단한 예시로 알아보겠습니다.

 

엑셀에서 VBA를 사용하여 시트에 접근하는 방법에는

여러가지가 있습니다.

 

워크시트의 인덱스를 사용하거나

Activesheet를 사용할 수도 있습니다.

그리고 시트의 이름을 통해서도 접근할 수 있고,

코드네임을 사용해서 접근할 수 도 있습니다.

 

오늘은 코드네임을 사용하여 접근하는 방법에 대해 알아보고

시트이름을 통해 접근하는 방법과 같이 비교해 보겠습니다.

 

[ 코드네임이란? ]

 

VBA에서 워크시트의 코드네임

워크시트를 내부적으로 참조하는 데 사용되는 속성입니다.

 

코드네임은 워크시트가 생성될 때 자동으로 부여되며,

사용자가 엑셀의 워크시트의 이름을 변경하더라도

코드네임은 변경되지 않습니다.

 

비유적으로 설명하면

홍길동이라는 사람이 있다고 했을 때

[ 홍길동의 집 ]은 시트의 이름이고,

[ 홍길동의 집이 있는 곳의 주소 ]는 코드네임이라고 생각하시면

될 것 같습니다.

728x90

건물의 주소는 건물이 철거 되지 않는 이상 잘 안바뀌지만,

건물에 사는 사람은 자주 바뀔 수도 있기 때문입니다.

 

이러한 특성 때문에

워크시트의 순서나 이름에 영향을 받지 않고

안정적으로 워크시트를 참조할 수 있게 해줍니다.

 

만약 워크시트의 이름이 변경될 가능성이 있다면,

코드네임을 사용하는 것이 더 안정적일 수 있습니다.  

 

[ 코드네임 확인하는 방법 ]

 

코드네임을 확인하는 방법

VBA 에디터를 열어서 확인할 수 있습니다.

단축키는 [ Alt + F11 ]입니다.

간혹 윈도우의 다른 프로그램을 여는데 해당 단축키가 사용중이라면

[ 개발도구 ] → [ Visual Basic ]를 클릭하시면 됩니다.

 

VBA 에디터가 나타나면

아래 그림처럼 시트를 선택해 줍니다.

그럼 [ 속성 ] 부분에서 

코드네임과 시트이름의 확인이 가능합니다.

파란색 네모코드네임이고

보라색 네모시트이름입니다.

 

또한 위 빨간색 네모의 

괄호 밖의 부분이 코드네임이고

괄호 안의 부분이 시트이름입니다.

 

시트 이름을 바꿔보겠습니다.

 

이렇게 시트이름을 바꾸면 아래 그림과 같이

해당 부분이 바뀌게 됩니다.

 

 

[ 코드네임의 특징 ]

 

시트의 이름이나 순서가 바뀌더라도

코드네임은 사용자가 바꾸지 않는 이상

변하지 않습니다.

 

아래 그림과 같이 시트를 만들어 보겠습니다.

 

그리고 [ 코드네임 ] 시트의 코드네임은

[ CodeName ]으로 하겠습니다.

 

이 상태서 시트의 이름도 바꿔보고

순서도 바꾸어 보겠습니다.

반응형

시트이름을 기존 [ 코드네임 ]에서 [ 바뀐이름 ]으로 바꾸었고

순서도 두번째에서 세번째로 옮겼습니다.

 

그렇다고 해도 아래 그림과 같이

코드네임은 변하지 않습니다.

 

[ 코드네임으로 시트에 접근하기 ]

 

간단하게

시트이름을 사용해서 시트에 접근하는 코드와

코드네임을 사용해서 시트에 접근하는 코드를

살펴보겠습니다.

 

먼저 시트이름을 사용해서

시트에 접근하는 코드입니다.

Sub AccessBySheetName()
    Dim ws As Worksheet
    
    Set ws = Worksheets("바뀐이름")
    
    ws.Range("A1").Value = "Hello, World!"
End Sub
SMALL

다음은 코드네임을 사용해서

시트에 접근하는 코드입니다.

코드네임으로 [ CodeName ]을 사용하는 것은 적절치 않은 것 같아

다른 것으로 변경하고 진행했습니다....

코드네임을 [ TestSheet1 ]으로 변경하고 진행했습니다.

Sub 코드네임()
    TestSheet1.Range("A1").Value = "Hello, World!"
End Sub

 

시트의 이름이나 순서를 통해 접근하는 코드를 작성했을 때

여러사람이 사용하는 경우라면

시트의 이름이나 순서를 임의로 바꿀 경우

에러가 발생하거나, 

엉뚱한 결과가 나타날 수도 있습니다.

 

코드네임을 사용하시면 이런 상황을 방지 할 수 있습니다.

 

여기를 방문하시면 더 많은 엑셀 관련 자료를 확인할 수 있습니다.

엑셀 공부하기
VBA 공부하기

728x90
반응형
LIST