시트 범위를 배열로 변환 :: Get_DB 함수 사용법

지정한 시트에서 사용중인 범위를 배열로 반환하는 Get_DB 함수의 사용법 및 동작원리를 살펴봅니다.

홈페이지 » 시트 범위를 배열로 변환 :: Get_DB 함수 사용법

시트 범위를 배열로 변환 :: Get_DB 명령문 사용법 총정리

엑셀 Get_DB 명령문 목차 바로가기
요약

엑셀 Get_DB 함수는 시트에서 사용 중인 범위를 배열로 변환하는 함수입니다. 시트의 값은 반드시 A1셀에서 시작해야 합니다.

명령문 구문
Array = Get_DB ( 시트, [ID없음], [머릿글포함] )
사용된 인수 및 변수 알아보기
인수 설명
시트
[WorkSheet]
배열로 변환할 시트 개체입니다. 사용중인 통합문서의 시트명으로 입력하려면, ThisWorkBook.WorkSheets("시트명") 으로 입력합니다.
ID없음
[Boolean, 선택인수]
머릿글 우측에 신규 ID값이 없을 경우 TRUE로 입력합니다. 기본값은 FALSE 입니다.
머릿글포함
[Boolean, 선택인수]
TRUE일 경우 배열에 머릿글을 포함합니다. 기본값은 FALSE 입니다.

예제파일 다운로드

오빠두엑셀의 강의 예제파일은 여러분을 위해 자유롭게 제공하고 있습니다.

상세 설명

엑셀 Get_DB 함수는 지정한 시트에서 사용 중인 범위를 배열로 변환하는 사용자 지정 함수입니다. 많은 양의 데이터를 다루거나 엑셀로 관계형 DB 구축할 때 유용하게 사용할 수 있습니다.

Get_DB 함수를 사용해서 시트 범위를 배열로 올바르게 변환하려면 몇가지 규칙을 지켜야 합니다.

  1. 시트의 값은 반드시 A1셀부터 시작해야 합니다.
  2. 병합된 셀이 없어야 합니다.
  3. ID가 있을 경우 ID는 반드시 A열에 입력되어야 하며, Insert_Record 함수에 사용될 신규 ID는 머릿글 우측에 입력합니다.
  4. 머릿글은 반드시 1행에 입력되어야 합니다.

Get_DB 함수는 데이터베이스 관련 VBA 함수 중 하나입니다. 더 다양한 DB 관련 함수는 아래 링크를 참고해주세요.

엑셀 데이터베이스 관련 VBA 명령문 사용법
실전 사용 예제
  1. 'DB'라는 시트의 데이터베이스를 배열로 반환
    Dim Arr As Variant
    Arr = Get_DB(ThisWorkBook.WorkSheets("DB")
  2. 'DB'라는 시트의 데이터베이스를 머릿글을 포함하여 배열로 반환
    Dim Arr As Variant
    Arr = Get_DB(ThisWorkBook.WorkSheets("DB",,TRUE)

시트 범위를 배열로 변환하는 함수, Get_DB 명령문 동작원리

Get_DB 명령문 전체 코드
Function Get_DB(WS As Worksheet, Optional NoID As Boolean = False, Optional IncludeHeader As Boolean = False) As Variant
 
'###############################################################
'오빠두엑셀 VBA 사용자지정함수 (https://www.oppadu.com)
'수정 및 배포 시 출처를 반드시 명시해야 합니다.
 
'■ Get_DB 함수
'■ 지정한 시트의 값을 배열로 반환합니다. 시트의 값은 반드시 A1셀에서 시작해야 합니다. 머릿글 우측으로 ID 값이 없을 경우 NoID를 TRUE로 사용합니다.
'■ 사용방법
'Array = Get_DB(ThisWorkBook.WorkSheets("시트명"), TRUE)
'▶ 인수 설명
'_____________WS                     : 배열로 변환할 시트 개체입니다.
'_____________NoID                  : 머릿글 우측에 신규 ID값이 없을 경우, TRUE로 사용합니다. 기본값은 FALSE 입니다.
'_____________IncludeHeader   : True일 경우 배열에 머릿글을 포함합니다. 기본값은 FALSE 입니다.
'###############################################################
 
Dim cRow As Long
Dim cCol As Long
Dim offCol As Long
 
If NoID = False Then offCol = -1
 
With WS
    cRow = .Cells(.Rows.Count, 1).End(xlUp).Row
    cCol = .Cells(1, .Columns.Count).End(xlToLeft).Column + offCol
    Get_DB = .Range(.Cells(2 + Sgn(IncludeHeader), 1), .Cells(cRow, cCol))
End With
 
End Function
명령문 동작원리 단계별 알아보기
  1. 변수를 선언하고 기본값을 설정합니다.
    Dim cRow As Long
    Dim cCol As Long
    Dim offCol As Long
     
    If NoID = False Then offCol = -1
  2. 시트에서 사용 중인 마지막 행 번호를 계산합니다.
    With WS
        cRow = .Cells(.Rows.Count, 1).End(xlUp).Row
  3. 시트에서 사용 중인 마지막 열 번호를 계산합니다.
        cCol = .Cells(1, .Columns.Count).End(xlToLeft).Column + offCol
  4. 시트 범위를 배열로 반환 후 함수를 종료합니다.
        Get_DB = .Range(.Cells(2 + Sgn(IncludeHeader), 1), .Cells(cRow, cCol))
    End With
0 0 투표
게시글평점