반응형
□ Type 소개
VBA(Visual Basic for Applications)에서 Type 문을 사용하여 사용자 정의 변수를 정의할 수 있습니다. 이는 사용자 정의 데이터 유형을 생성하는 데 사용되며, 여러 개의 관련된 변수를 그룹화할 수 있습니다. 이 방법은 특히 복잡한 데이터를 보다 체계적으로 관리할 때 유용합니다. 이 방법을 사용하면 데이터 관리가 더 체계적이고 직관적이 됩니다. 필요에 따라 다양한 방식으로 확장하여 사용할 수 있습니다!
▷ Type 문법
Type 사용자정의이름
변수1 As 데이터형
변수2 As 데이터형
...
End Type
- 사용자정의이름: 사용자 정의 데이터 유형의 이름입니다.
- 변수: 사용자 정의 데이터 유형에 포함될 개별 변수입니다.
- 데이터형: 해당 변수의 데이터 유형을 지정합니다. (Integer, String, Double 등)
▷ 예제 코드 - 학생 정보 관리
Option Explicit
'// 사용자 정의 데이터 유형 선언
Type StudentInfo
Name As String
Age As Integer
Grade As String
GPA As Double
End Type
Sub UseTypeExample()
'// 사용자 정의 데이터 유형 변수 선언
Dim student As StudentInfo
'// 값 설정
student.Name = "John Doe"
student.Age = 20
student.Grade = "Sophomore"
student.GPA = 3.75
'// 값 출력
Debug.Print "Name: " & student.Name
Debug.Print "Age: " & student.Age
Debug.Print "Grade: " & student.Grade
Debug.Print "GPA: " & student.GPA
End Sub
▷ 예제 코드 - 좌표 관리
Option Explicit
'// 사용자 정의 데이터 유형 선언
Type Coordinates
X As Double
Y As Double
Z As Double
End Type
Sub CoordinatesExample()
'// 좌표 데이터 변수 선언
Dim point As Coordinates
'// 값 설정
point.X = 10.5
point.Y = 20.3
point.Z = 15.8
'// 값 출력
Debug.Print "X: " & point.X
Debug.Print "Y: " & point.Y
Debug.Print "Z: " & point.Z
End Sub
□ 중첩된 사용자 정의 데이터 유형
사용자 정의 데이터 유형 안에 또 다른 사용자 정의 데이터 유형을 포함할 수도 있습니다.
Option Explicit
'// 중첩된 사용자 정의 데이터 유형
Type Address
Street As String
City As String
ZipCode As String
End Type
Type Person
Name As String
Age As Integer
HomeAddress As Address
End Type
Sub NestedTypeExample()
Dim person As Person
'// 값 설정
person.Name = "Alice Smith"
person.Age = 30
person.HomeAddress.Street = "123 Main St"
person.HomeAddress.City = "New York"
person.HomeAddress.ZipCode = "10001"
'// 값 출력
Debug.Print "Name: " & person.Name
Debug.Print "Age: " & person.Age
Debug.Print "Address: " & person.HomeAddress.Street & ", " & person.HomeAddress.City & ", " & person.HomeAddress.ZipCode
End Sub
□ 유의 사항
- Type 문은 모듈 수준에서만 선언할 수 있습니다.
즉, Sub 또는 Function 내부가 아닌 모듈의 최상단에 선언해야 합니다. - 사용자 정의 데이터 유형은 Public으로 선언하여 여러 모듈에서 사용할 수 있습니다.
Public Type GlobalType
Value As Integer
Description As String
End Type
'VBA VB.Net Code' 카테고리의 다른 글
엑셀 VBA의 배열(array) 개념 (0) | 2024.12.02 |
---|---|
폴더 만들기 (0) | 2024.11.25 |
엑셀 VBA의 Collection (0) | 2024.11.15 |
Solidworks API를 이용하여 응용 프로그램 개발 하기 (1) | 2024.11.08 |
Select the file name in the cell and open it (0) | 2024.09.11 |