본문 바로가기
엑셀 (Excel)/엑셀 매크로 VBA

Excel 엑셀 매크로 Sheet Name 불러서 기록하기

by ★√★ 2021. 3. 13.

안녕하세요, Davey 입니다. 오늘 포스팅 할 내용은, 두가지 입니다. 첫번 째 내용은, 특정 Excel File의 Sheet Name을 다 불러와서, "Sheet1"에 기록 하는 Coding 입니다. 즉, Sheet Name은 한 번에 모아서, 뿌려줄 수 있는 Coding 입니다. 

 

 

일을 하면서, 간혹, Sheet 이름을 정리할 때, 단순 업무를 피 할수 있는 Code 이기에, 유용하실 거라고 생각합니다. 두번째 내용은, Sheet Name을 오름 차순으로 정리를 하는 Coding 입니다. 산재 되어 있는 Sheet Name을 한 번에 정리 할 수 가 있어서, 유용하실 거라고 생각합니다. 첫번째 내용 포스팅 자료 마무리하고, 두번째 내용으로 넘어가도록 하겠습니다. 

 

Blog를 운영하는 목적이, 서로 정보를 공유하는 것도 있지만, 제가 실질적으로, 사용하는 부분을 Random 형식으로, 올려서 공유하는 목적도 있어서, 실습한 자료도 설명과 함께 포스팅 하도록 하겠습니다.

 

1) Demonstration #1 : Excel File의 Sheet Name을 다 불러와서, "Sheet1"에 기록 하는 Coding

:  Source 예제는 Demonstration #1 , 2 에 비슷한 내용을 적용해서 사용하도록 하겠습니다. 아래 snap shot을 보시면, 여러개의 sheet name이 있는 걸 확인 하실 수 있습니다. 아래의 sheet들의 이름을 sheet1에 뿌려주는 code를 구현해보도록 하겠습니다.

 

매크로-코드-구현1
매크로-코드-구현

 

- Excel Macro Code 내용은 아래와 같습니다. 

 

========================================================================

 

Sub ChangeSheetName() 

Dim SheetNo1 As Integer        ' 전체 Sheet No.를 위한 변수 
  
  SheetNo1 = Sheets.Count      ' 전체 Sheet수를 SheetNo1에 Assign 

   
  ' For문을 돌려, 각 Sheet의 이름을, Sheet1에 A2 부터 기록하게 하기 
   
  For i = 1 To SheetNo1 
  
     Sheets("Sheet1").Cells(i + 1, 1) = Sheets(i).Name 
   
  Next i 


End Sub

 

=====================================================================

 

매크로-코드-구현2
매크로-코드-구현

 

- 위 코드를 Run 해보면, 아래와 같은 결과 값을 보실 수 있습니다. 즉, Sheet1에 "Sheet1" 포함, 모든 sheet 이름이 모두 정리되는 걸 확인 하실 수 있습니다. 

 

매크로-코드-구현3
매크로-코드-구현

2) Demonstration #2 : Excel File의 Sheet Name을 오름 차순 정렬하는 Coding

:  Source 예제를 보시면, 현재 sheet 이름이 뒤죽 박죽으로 섞여 있는 걸 확인 하실 수 있습니다. 이 sheet들의 이름을 오름 차순으로 정렬을 하려고 합니다. Excel Macro Code를 구현해보도록 하겠습니다.

 

매크로-코드-구현4
매크로-코드-구현

 

Excel Macro Code는 아래와 같습니다.

 

=====================================================================

 

Sub Ascending_Test()

 

 

For i = 1 To Sheets.Count     ' Sheet 내에 있는 모든 Sheet를 순환을 합니다.

 

 ' MsgBox Sheets(i).Name

 

 

    For j = 1 To Sheets.Count  ' Sheet내의 비교할 모든 Sheet를 순환을 합니다.

 

      '서로 비교해서, 작은 값을 가지는 Sheet가 큰 값을 가지는 Sheet앞에 이동하는 Code 

     If Sheets(i).Name < Sheets(j).Name Then   

     

       Sheets(i).Move Before:=Sheets(j)

   

    End If

 

  Next j

 

Next i

 

=====================================================================

 

- 위 코드를 Run 해보면, 아래와 같은 결과 값을 보실 수 있습니다. 즉, 모든 sheet 이름이 오름차순으로 정리되는 걸 확인 하실 수 있습니다. 

 

매크로-코드-구현5
매크로-코드-구현

 

이상입니다. 정말 간단한 것 처럼 보이지만, Excel Macro를 처음 다루지는 분들이 보시기에는, 약간의 헷갈림이 동반될 수 있습니다. 저도 처음에 그랬고, 맨땅에 coding 을 할 때는 약간은 생각이 안나는 현상이 경험을 했습니다. 그래서 그런지, 지속적으로 coding은 해야 된다라고 생각합니다. 정말.. 하루 하루 까먹는게 늘어 나는 거 같습니다. 오늘도 coding 하느라, 너무 고생 많이 하셨고, 오늘도 같이 성장해요.

 

제 Posting이 조금이나마 정보 전달에 도움이 되셨길 빌며, 되셨다면, 구독, 댓글, 공감 3종 세트 부탁 드립니다. 감사합니다. 

[저작권이나, 권리를 침해한 사항이 있으면 언제든지 Comment 부탁 드립니다. 검토 후 수정 및 삭제 조치 하도록 하겠습니다. 그리고, 기재되는 내용은 개인적으로 습득한 내용이므로, 혹 오류가 발생할 수 있을 가능성이 있으므로, 기재된 내용은 참조용으로만 봐주시길 바랍니다. 게시물에, 오류가 있을때도, Comment 달아 주시면, 검증 결과를 통해, 수정하도록 하겠습니다.]

 

 

728x90

댓글


// 내부링크를 현재창으로 열기 // Open internal links in same tab