엑셀 시트 이름 가져오기


이번 시간에는 엑셀 시트 이름 가져오기를 해보도록 하겠습니다. 

시트를 많이 사용하지 않으시는 분들은 굳이 필요하지 않겠지만 제 블로그에 오신 분 중 시트 100개를 관리하시는 분이 있으시더라고요.





시트를 이동하려면 밑에 화살표를 누르거나 해야 할 텐데 만약 회사에서 이렇게 많은 시트를 관리하려면 어떻게 해야 할까 생각하다가 책 앞에 있는 목차처럼 시트 이름만 있는 시트를 만들고 하이퍼 링크를 걸어 해당 시트로 바로 이동하면 좋을 것 같아서 시작하게 되었습니다.


그런데 문제가 있더라고요. 

첫 번째 문제는 100개의 시트의 이름을 하나씩 셀에 입력을 해야 하느냐는 것이고, 두 번째 문제는 하이퍼링크를 일일이 걸어 줘야 하는 것이 문제였습니다.



그래서 우선 엑셀 파일에 있는 시트의 이름을 가져오는 방법부터 해결하였습니다.

(지식인에 어떤 분이 답변으로 소스코드를 달아 놓으셨더라고요. 그런데 엑셀에 초보시거나 매크로를 한 번도 안 해보신 분들이 있으실 것 같아 다시 정리를 했습니다. 정말 감사합니다.) 



엑셀 시트 이름 가져오기


1. 첫 번째 시트에 이름을 "시트목록"으로 변경을 해줍니다.



2. 메뉴에서 [개발 도구]- 2번 [삽입] - 3번을 클릭하여 화면에 그려 줍니다.



4. [새로 만들기]를 클릭하여 새로운 매크로를 만들어 줍니다.




5. 코드를 입력할 수 있는 입력 창이 나타납니다. sub ~ End sub 사이에 코드를 넣어 줍니다.


아래 코드를 복사하여 붙여넣기를 하면 됩니다. 다운로드: 엑셀 시트 코드.txt


 Dim Ws As Worksheet

  Dim ix As Integer, it As Integer


  Set Ws = Sheets("시트목록")

  With Ws

     it = Worksheets.Count

     .Columns("A:B").EntireColumn.ClearContents

     .Range("a1:b1") = Array("No", "시트명")

     For ix = 1 To it

        .Cells(ix + 1, 1) = ix

        .Cells(ix + 1, 2) = Sheets(ix).Name

    Next ix

    .Columns("A:B").EntireColumn.AutoFit

  End With



6. "시트목록"이라고 표시한 시트에 아래 시트 이름을 A1, B1 열에  No, 시트명을 적고 두 번째 행부터 시트명을 넣어라는 뜻입니다.



7. 화살표 부분 X를 클릭하여 닫고 나옵니다.



8. [단추 1] 오른쪽 마우스로 선택하면 [텍스트 편집]이 나오는데 안에 이름을 변경할 수 있습니다.  




9. 버튼을 왼쪽 마우스로 클릭하면 매크로가 실행되어 시트 이름을 가져옵니다.


한 파일에 있는 모든 시트의 이름을 가져올 수 있습니다. 만약 시트 이름이 변경되었다면 다시 버튼을 클릭하여 시트 이름을 불러오면 됩니다.


여기서 각 시트명에 하이퍼 링크를 걸어 주면 되는데요. 하나씩 선택하고 오른쪽 마우스를 클릭하여 하이퍼링크를 걸어주는 방법이 있고 하이퍼링크 함수를 사용하여 거는 방법이 있습니다.


하이퍼링크를 사용하여 링크를 거는 방법은 다음 시간에 알아보도록 하겠습니다.


반응형

댓글

Designed by JB FACTORY