이 페이지에서
구문
= Get_Dict ( 시트 )
인수구분
형식 설명
시트
필수
Worksheet
Dictionary 개체로 변환할 시트입니다.
시트 안에 입력된 데이터는 반드시 A1 셀부터 시작되고, 데이터의 첫번째 필드는 반드시 고유값(ID)이 입력되어야 합니다.
마스터 코드
복사한 코드는 VBA 편집기(Alt + F11) 새 모듈에 붙여넣어 사용하세요Function Get_Dict(WS As Worksheet) As Object
'###############################################################
'오빠두엑셀 VBA 사용자지정함수 (https://www.oppadu.com)
'수정 및 배포 시 출처를 반드시 명시해야 합니다.
'■ Get_Dict 함수
'■ 시트에 입력된 데이터를 Dictionary로 반환합니다. 첫번째 필드는 반드시 고유값이 입력되어야 합니다.
'■ 사용방법
'Dictionary = Get_Dict(시트)
'■ 인수 설명
'_____________WS : Dictionary로 변환할 시트입니다.
'###############################################################
Dim cRow As Long: Dim cCol As Long
Dim Dict As Object
Dim vArr As Variant
Dim i As Long: Dim j As Long
Set Dict = CreateObject("Scripting.Dictionary")
With WS
cRow = .Cells(.Rows.Count, 1).End(xlUp).Row
cCol = .Cells(1, .Columns.Count).End(xlToLeft).Column
For i = 1 To cRow
ReDim vArr(1 To cCol - 1)
For j = 2 To cCol
vArr(j - 1) = .Cells(i, j)
Next
Dict.Add .Cells(i, 1).Value, vArr
Next
End With
Set Get_Dict = Dict
End Function
활용 예제
특정 시트의 모든 데이터를 Dictionary 로 변환
Dim Dict As Object
Set Dict = Get_Dict(ThisWorkbook.Worksheets("시트명"))
변환 후 특정 ID 의 데이터를 배열로 반환
Dim Dict As Object
Dim vArr As Variant
Set Dict = Get_Dict(ThisWorkbook.Worksheets("시트명"))
vArr = Dict(ID)
안내사항
시트의 데이터는 반드시 A1 셀에서 시작해야 하며, 첫 번째 필드에는 고유값(ID)이 입력되어야 합니다.
전체 코드는 CreateObject 방식(Late Binding)으로 Dictionary 를 선언하므로 별도 참조 설정 없이 실행됩니다.
속성·함수 자동 완성이 필요하면 VBA 편집기의 '도구 → 참조'에서 Microsoft Scripting Runtime 라이브러리를 활성화합니다.
댓글 1
로그인 후 댓글을 작성할 수 있습니다.
강민준🤗
2024.08.11 12:18
좋은 강의 감사합니다