반응형
C 언어에서 사용하는 구조체와 같은 형태의 Data Type을 VBA에서도 사용할 수 있습니다.
선언
Type Student
name As String
age As Integer
grade As Integer
is_graduated As Boolean
End Type
저는 Student라는 이름의 사용자 정의 데이터 타입을 선언해 보았습니다.
Module 내에서만 선언이 가능하며, Module의 최상단에 선언해주시면 됩니다.
Type 뒤에 원하는 데이터 타입 명을 입력해주고,
Type과 End Type 사이에 사용하고자 하는 데이터들을 작성해주면 됩니다.
변수로 사용
Type Student
name As String
age As Integer
grade As Integer
is_graduated As Boolean
End Type
Sub User_Defined_Data_Type_Ex()
Dim student1 As Student
student1.name = "Lee"
student1.age = 27
student1.grade = 4
student1.is_graduated = False
Debug.Print ("Name: " & student1.name)
Debug.Print ("Age: " & student1.age)
Debug.Print ("Grade: " & student1.grade)
Debug.Print ("Is_Graduated: " & student1.is_graduated)
End Sub
일반적인 데이터 타입들과 마찬가지로 Dim을 이용해 데이터를 선언할 수 있습니다.
그리고 각각의 하위 변수들에 대해서는 '.'을 이용하여 접근할 수 있습니다.
배열로 사용
Sub User_Defined_Data_Type_Array_Ex()
Dim studentArr(5) As Student
studentArr(0).name = "Kim"
studentArr(0).age = 24
studentArr(0).grade = 2
studentArr(0).is_graduated = False
Debug.Print ("Name: " & studentArr(0).name)
Debug.Print ("Age: " & studentArr(0).age)
Debug.Print ("Grade: " & studentArr(0).grade)
Debug.Print ("Is_Graduated: " & studentArr(0).is_graduated)
End Sub
일반 변수와 똑같은 방법으로 사용자 정의 데이터 타입도 배열로 사용할 수 있습니다.
또한, 아래와 같은 방법으로 데이터 복사 역시 가능합니다.
Sub User_Defined_Data_Type_Array_Ex()
Dim studentArr(5) As Student
studentArr(0).name = "Kim"
studentArr(0).age = 24
studentArr(0).grade = 2
studentArr(0).is_graduated = False
studentArr(1) = studentArr(0)
Debug.Print ("Name: " & studentArr(1).name)
Debug.Print ("Age: " & studentArr(1).age)
Debug.Print ("Grade: " & studentArr(1).grade)
Debug.Print ("Is_Graduated: " & studentArr(1).is_graduated)
End Sub
반응형
'프로젝트 및 실습 > VBA' 카테고리의 다른 글
[VBA] Do While과 Do Until (0) | 2022.08.02 |
---|---|
[VBA] Select Case Construct (Switch문) (0) | 2022.08.02 |
[VBA] 배열(Array) 사용하기 (0) | 2022.08.02 |
[VBA] Comment Object 삽입 (0) | 2022.08.01 |
[VBA] Access DB 내 모든 테이블 List 출력 (0) | 2022.07.14 |