VBA) 변수명을 텍스트 조합으로 호출할 수 있는 방법이 있을까요?

VBA
작성자
whrjsg****
작성일
2024-04-15 14:04
조회
547
엑셀버전 : M365

운영체제 : 윈도우10

질문 요약 : 텍스트 조합으로 변수 참조를 할 수 있는 방법이 있을까요?

예를들어서

바보 라는 명칭의 100개의 칸을 가진 배열로 만들어진 변수가 있다면 이 변수를

바보(100) = "안녕하세요"

 

인사말 = "바보" & (100)

위와 같이 텍스트 형태로 조합해서 변수를 호출하는 방법이 있을까요 ?

엑셀에서 INDIRECT 함수와 비슷한 느낌..으로 생각하고 있는데..찾아봐도 방법이 없어보여서요.. @_ @

신고
스크랩
공유
회원등급 : 2레벨
포인트 : 61 EP
총질문 : 1 개 (마감율 : 100%)
채택답변 : 0 개
전체 7

  • 2024-04-15 14:55

    @whrjsg**** 님 배열을 100개로 선언한 다음에 배열에서 불러오면 될 듯 합니다.
    100이라는 Index 번호를 알고,  불러올 변수가 "바보"라는 것을 아니까요...
    만약 변수명도 "바보"외에 여러 개 있는 것이라면 변수명에 따라 IF나 Select를 사용해 보세요.

    Dim 바보(1 to 100), 천치(1 to 100)
    바보(100) = "안녕하세요"
    천치(100) = "안녕히 가세요"
    IF  상태="마중" Then
       인사말 = 바보(100)
    ElseIF 상태 ="배웅" Then
       인사말 = 천치(100)
    EndIF

     

     


    • 2024-04-15 17:39

      @원조백수 님 앗 답변 감사합니다.. ! 희망하는건 아니었는데..^,.ㅠ.. 변수명을 조합등으로 ,, 유동적으로 호출이 가능할지..였습니다 !

      불러야할 대상들이 많다보니까 , 명칭을 배열에 저장하고 for문으로 반복해서 명칭을 불러오면서 배열에 저장된 값들을 계속 불러들이고 싶었는데 ( 안그러면 for문 안에 if나 case문을 여러개 만들어야해서.. ) 하핳..ㅠ


      • 2024-04-15 17:43

        @whrjsg**** 님 변수명을 조합한다는 것을 구체적으로 예를 들어 보세요.

        이름의 조합으로 할당된 값을 찾는다면,
        Dictionary를 이용해서 작업할 수도 있습니다.


        • 2024-04-15 17:53

          @원조백수 님 번거롭게 해드려서 죄송합니다 ! (_ _ )

          이런식의 표가 있다면

          상 중 하 에 따라서 각각 상그룹 , 중그룹 , 하그룹 배열에 넣고 싶은데
          이걸 지금 하고잇는 방식은.

          //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

          등급 = ActiveSheet.Range("A1:A13")
          값 = ActiveSheet.Range("B1:B13")
          배열길이 = 등급.Cells.Count

          ReDim 상그룹(배열길이)
          ReDim 중그룹(배열길이)
          ReDim 하그룹(배열길이)

          상그룹위치 = 0
          중그룹위치 = 0
          하그룹위치 = 0

          For i = 1 To 배열길이
          If 등급(i) = "상" Then
          상그룹위치 = 상그룹위치 + 1
          상(상그룹위치) = 값(i)
          End If

          If 등급(i) = "중" Then
          중그룹위치 = 중그룹위치 + 1
          증(중그룹위치) = 값(i)
          End If

          If 등급(i) = "하" Then
          하그룹위치 = 하그룹위치 + 1
          하(하그룹위치) = 값(i)
          End If

          Next i

          //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

          위 구문처럼 , 각 케이스 별로 등급 값을 체크해서 배열에 직접 넣어주고 있는데 이걸,

          등급 = ActiveSheet.Range("A1:A13")
          값 = ActiveSheet.Range("B1:B13")
          배열길이 = 등급.Cells.Count

          ReDim 상그룹(배열길이)
          ReDim 중그룹(배열길이)
          ReDim 하그룹(배열길이)

          상그룹위치 = 0
          중그룹위치 = 0
          하그룹위치 = 0

          For i = 1 To 배열길이

          등급(i)(등급(i) & 그룹위치) = 값(i)

          Next i

           

          이런식으로 ...;ㅅ; 가져온 값들을 조합해서 , 변수에 접근할 수 있는 방법이 있는지...가 ! 궁금했습니다.

          다시 한번 번거롭게해드려서 죄송합니다 (_ _)


          • 2024-04-15 18:10
            채택된 답변

            @whrjsg**** 님 변수를 동적으로 지정하기 어려우므로, Dictionary를 이용해서 작업해 보세요...
            변수에 값을 지정하는 것이 목적이 아니라,  변수명에 따른 값을 찾아오는 것이 주요 목적일 것으로 생각합니다.
            샘플을 첨부합니다.

            Sub test()
                Dim oDict As Object, vData, iR, iCnt(1 To 3), idx
                Set oDict = CreateObject("Scripting.Dictionary")
             
                vData = Worksheets("Sheet1").Range("A2:B27").Value2
             
                For iR = LBound(vData, 1) To UBound(vData, 1)
                    idx = Application.Match(vData(iR, 1), Array("상", "중", "하"), 0)
                    iCnt(idx) = iCnt(idx) + 1
                    oDict(vData(iR, 1) & iCnt(idx)) = vData(iR, 2)
                Next iR
             
                Debug.Print oDict("상1"), oDict("중2"), oDict("하3")
             
                Set oDict = Nothing
            End Sub

             

            첨부파일 : Dictionary_Sample.xlsm


  • 2024-04-15 16:34

    @whrjsg**** 님 100이라는 숫자 대신 변수는 사용할 수 있습니다


    • 2024-04-15 17:40

      @찬바람 님 숫자 대신 변수라는게 어떤 의미인지가 잘..^,.ㅠ.. 죄송합니다..
      희망 하는 점에 대해서 구체적으로 정리해서 올려보겠습니다 !


전체 16,942
번호 카테고리 제목 작성자 작성일 추천 조회
알림
[📚진짜쓰는 실무엑셀] 2024년 엑셀 공부, 이 책 한권으로 마스터하세요! (291)
오빠두엑셀 | 2022.02.03 | 추천 554 | 조회 846866
오빠두엑셀 2022.02.03 554 846866
공지사항 문서서식
⭐ [더 나은 커뮤니티 문화를 위한 Q&A 글 작성 규칙] ⭐ (197)
오빠두엑셀 | 2021.10.28 | 추천 304 | 조회 31532
오빠두엑셀 2021.10.28 304 31532
74639 함수/공식
New 데이터유효성 검사를 통해 40배수의 수만 입력 (8)
쿠노이 | 00:21 | 추천 0 | 조회 37
쿠노이 00:21 - 37
74638 피벗테이블
New 피벗테이블 날짜 그룹화 원치 않는 범위가 뜹니다. (1)
단팥빵 | 2024.10.31 | 추천 0 | 조회 32
단팥빵 2024.10.31 - 32
74633 문서서식
New 안녕하세요 게임 시스템 테이블 작성 배우고 있는데 기초적인 부분을 잘 모르겠어서 질문 드립니다! 첨부파일 (1) 답변완료
코니 | 2024.10.31 | 추천 0 | 조회 61
코니 2024.10.31 - 61
74632 기능/도구
New 챗gpt 연동해서 이미지로 된 표의 데이터를 가져오려고 합니다.
김수현 | 2024.10.31 | 추천 0 | 조회 57
김수현 2024.10.31 - 57
74628 구글시트
New IMPORTRANGE 함수에서 칸을 늘리면 사라지는데 고정하는 방법은 없을까요? (3)
야망이 | 2024.10.31 | 추천 0 | 조회 63
야망이 2024.10.31 - 63
74627 문서서식
New 조건부 서식 문의 엑셀파일첨부파일 (1)
배고픈짐승 | 2024.10.31 | 추천 0 | 조회 76
배고픈짐승 2024.10.31 - 76
74626 파워쿼리/피벗
New [파워쿼리] 여러 파일 한번에 불러올 때 데이터 유실 첨부파일 (3)
naa**** | 2024.10.31 | 추천 0 | 조회 64
naa**** 2024.10.31 - 64
74625 VBA
New 시트이동시 유저폼 실행방법 문의 (2) 답변완료
땡이 | 2024.10.31 | 추천 0 | 조회 63
땡이 2024.10.31 - 63
74621 기능/도구
New 4개의 열 에서 같은 이름 가로로 정렬 (3)
Bukonge | 2024.10.31 | 추천 0 | 조회 62
Bukonge 2024.10.31 - 62
74618 VBA
New 유저폼에 바코드스캔시 입력속도 개선방법? (5) 답변완료
땡이 | 2024.10.31 | 추천 0 | 조회 59
땡이 2024.10.31 - 59
74616 함수/공식
New Rawdata 첨부파일 (4)
HIHUGO | 2024.10.31 | 추천 0 | 조회 68
HIHUGO 2024.10.31 - 68
74604 문서서식
New 간트차트 조건부서식 이용 문의 엑셀파일첨부파일 (3)
배고픈짐승 | 2024.10.30 | 추천 0 | 조회 81
배고픈짐승 2024.10.30 - 81
74599 함수/공식
New 이런 경우에는 무슨 함수를 써야할까요..? (2)
iwnqn | 2024.10.30 | 추천 0 | 조회 103
iwnqn 2024.10.30 - 103
74598 문서서식
New 엑셀 유효성 검사 뛰어 쓰기 문제 엑셀파일 (2) 답변완료
퉁퉁이 | 2024.10.30 | 추천 0 | 조회 75
퉁퉁이 2024.10.30 - 75
74592 함수/공식
New 여러 값들 중에서 원하는 값을 찾고 싶어요 도와주세요! 첨부파일 (9) 답변완료
저도해볼게요 | 2024.10.30 | 추천 0 | 조회 100
저도해볼게요 2024.10.30 - 100
74589 구글시트
New 한셀에 줄바꿈으로 있는 여러데이터를 한셀에 한데이터 들어가게끔 일괄로 하고 싶습니다 첨부파일 (4) 답변완료
스톤스톤 | 2024.10.30 | 추천 0 | 조회 61
스톤스톤 2024.10.30 - 61
74585 VBA
New UserForm 크기질문 첨부파일 (5)
땡이 | 2024.10.30 | 추천 0 | 조회 78
땡이 2024.10.30 - 78
74583 함수/공식
New XLOOKUP 함수의 다중조건을 잘 모르겠습니다 첨부파일 (6)
qlcc**** | 2024.10.30 | 추천 0 | 조회 93
qlcc**** 2024.10.30 - 93
74582 함수/공식
New filter 함수에 대해 문의드립니다 (5)
김은상 | 2024.10.30 | 추천 0 | 조회 75
김은상 2024.10.30 - 75
74581 구글시트
New 구글폼 견적서 자동화 관련, 폼에서 입력된 이미지 파일을 견적서에 넣는 방법 좀 알려주시면 감사하겠습니다.
| 2024.10.30 | 추천 0 | 조회 61
2024.10.30 - 61
74572 차트/그래프
New 꺽은선 그래프의 레이블이 원복이 됩니다. 첨부파일 (3)
구리구리이 | 2024.10.30 | 추천 0 | 조회 67
구리구리이 2024.10.30 - 67
74570 함수/공식
New 배수 금액으로 순번 정하기 알려 주세요...ㅠ 엑셀파일첨부파일 (3) 답변완료
서기 | 2024.10.30 | 추천 0 | 조회 63
서기 2024.10.30 - 63
74566 함수/공식
New 두개의 열에 입력된 데이터를 순서 바꿔서 입력으로 중복일 때 골라내는 법 엑셀파일첨부파일 (1) 답변완료
문과적남자 | 2024.10.30 | 추천 0 | 조회 65
문과적남자 2024.10.30 - 65
74564 함수/공식
New 각 열별로 합 구하는 방법 첨부파일 (2) 답변완료
라핼 | 2024.10.30 | 추천 0 | 조회 81
라핼 2024.10.30 - 81
74563 함수/공식
New 필터 적용시 중복값 제외 카운트 되는 법 좀 알려주세요 ㅠㅠ 첨부파일 (1)
정재욱 | 2024.10.30 | 추천 0 | 조회 78
정재욱 2024.10.30 - 78
74558 함수/공식
New 문자와 숫자가 섞여있는 열의 합계와 평균을 구하는 방법을 알려주세요!! 첨부파일 (9)
침착해 | 2024.10.30 | 추천 0 | 조회 83
침착해 2024.10.30 - 83
74556 함수/공식
New 세트상품 마진율 구하기 (2)
ek02 | 2024.10.30 | 추천 0 | 조회 70
ek02 2024.10.30 - 70
74543 기능/도구
New 문자와 숫자 혼합된 셀에서 숫자만 따로 따올수 있는 기능이 있을까요? 첨부파일 (4)
야만용사 | 2024.10.29 | 추천 0 | 조회 105
야만용사 2024.10.29 - 105
74542 기능/도구
New 엑셀 백분율 숫자로변경 (3)
rarara | 2024.10.29 | 추천 0 | 조회 96
rarara 2024.10.29 - 96
74540 함수/공식
New ★데이터 가공★ 잘못된 데이터를 올바른 데이터로 변환하는 과정을 도와주세요 ㅠㅠ 엑셀파일첨부파일 (11)
| 2024.10.29 | 추천 0 | 조회 137
2024.10.29 - 137