본문 바로가기
  • Welcome!
VBA VB.Net Code

Type 문을 사용하여 사용자 정의 변수를 정의

by ToolBOX01 2024. 11. 18.
반응형

□ Type 소개

VBA(Visual Basic for Applications)에서 Type 문을 사용하여 사용자 정의 변수를 정의할 수 있습니다. 이는 사용자 정의 데이터 유형을 생성하는 데 사용되며, 여러 개의 관련된 변수를 그룹화할 수 있습니다. 이 방법은 특히 복잡한 데이터를 보다 체계적으로 관리할 때 유용합니다. 이 방법을 사용하면 데이터 관리가 더 체계적이고 직관적이 됩니다. 필요에 따라 다양한 방식으로 확장하여 사용할 수 있습니다!

 

[엑셀 매크로 VBA 기초 강좌] Type 문을 이용한 사용자 정의 데이터 형식과 Private, Public, Static을 이

[엑셀 매크로 VBA 기초 강좌] Type 문을 이용한 사용자 정의 데이터 형식과 Private, Public, Stati...

blog.naver.com

 

▷ 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