나눔터  
  HOME > 나눔터 > 묻고답하기 > 엑셀
엑셀
엑셀에 대한 질문과 답변을 올려주세요. 단, 취지에 맞지 않는 글은 운영자가 삭제합니다.
 "000 님, 도와주세요", "부탁 드립니다.", "급합니다!" 등과 같이 막연한 제목을 달지 말아주세요.
[필독] 빠르고 정확한 답변을 얻는 16가지 Tip !
[필독] 저작권법 개정에 따른 이용안내
작성자:  

 황기성 (latinum)

추천:  2
파일:     VBA_TEST_030718B_es.xls (173KB) 조회:  3491
제목:   [RE]CodeName 관련 추가 질문입니다
     
  * 답변하시는 분들께 도움이 되도록 자신의 환경을 아래 항목 옆에 기재해 주세요.

1. 엑셀 버전(95,97,2000,2002): 2002
2. 윈도우즈의 버전(win95,win98,winME,winNT,win2000,winXP): winXP
3. CPU (486,PentiumI/II/III/IV...): P4-1.6G
4. RAM (32,64,128,256,512MB,1G...): 512

* 아래줄에 질문을 작성하세요 >>

답변 고맙습니다.
그런데, 그 방법은 임시 방편인것 같아서요.
제가 실제로 만들고 있는 프로그램은 그것보다 좀 복잡하거든요.
제가 다른 예제를 하나 만들었습니다.
한 번 보시고 의견 부탁드릴께요.

원래 굉장히 복잡한 프로그램인데 모두다 삭제하고 핵심만 남겨놓았습니다.
원래 프로그램은 이렇습니다.
어떤 조건에 따라 시트가 가변적으로 생성 되며, 신규로 생성된 시트에는 각 각 해당하는 VBA 코드들을 갖고 있어야 합니다.
즉 프로그램이 실행되면, 시트를 신규로 만들고 그 시트마다 VBA코드들을 넣어주어야 합니다.
그러려면 codeName이 꼭 필요한데, 그 CodeName이 VBE가 열린 상태에서는 제대로 읽혀지는데, VBE를 닫으면 항상 ""값이 return됩니다.
첨부된 다른 예제 파일을 한 번 점검해주세요.

==============[입살님 글에 대한 답변입니다]==============
안녕하세요? 입살 님!

고약한 경우로군요^^*

Option Explicit

Sub sf_Test()
    Dim wsMySheet               As Worksheet
    Dim strCodeName             As String
    Dim wsWorksheet             As Worksheet
    Dim wsTest                  As Worksheet
    Dim intCounter              As Integer
    Dim k As Integer '추가하세요...
    
    Set wsTest = Sheets("Test")
    
    Application.DisplayAlerts = False
    '##############################
    '기존 Data 시트들 모두 삭제
    '##############################
    For Each wsWorksheet In Worksheets
        If (wsWorksheet.Name <> "Test") Then wsWorksheet.Delete
    Next wsWorksheet
    
    Application.DisplayAlerts = True
    
    k = ThisWorkbook.VBProject.VBComponents.Count '추가
    
    For intCounter = 1 To 5
        Worksheets.Add before:=wsTest
        Set wsMySheet = ActiveSheet
        
        wsMySheet.Name = "ws_" & intCounter
        Cells(1, 1) = intCounter
        
        strCodeName = ThisWorkbook.VBProject.VBComponents(k + intCounter).Name '수정

        
        MsgBox wsMySheet.Name & "시트의 CodeName = [" & strCodeName & "]", vbInformation, "MagicSheet & 엑사모::http://officedev.co.kr"
    Next intCounter

    
End Sub


그럼...행운이 있으시길...!
 
[불량 게시물 신고]  
        
  

작성일 : 2003-07-18(12:00)
최종수정일 : 2003-07-18(12:00)
 


 ◎ 관련글

  제 목   작성자   날짜
CodeName 관련 질문입니다 입살 2003-07-18
[RE]CodeName 관련 추가 질문입니다 입살 2003-07-18
[RE]CodeName 관련 추가 질문입니다 황기성 2003-07-18