VBA 클래스 모듈을 만들고 사용하는 방법? (예시)

Excel VBA 클래스 모듈

VBA를 사용할 때 우리는 VBA에 정의 된 속성과 속성을 사용하지만, 우리 자신의 속성과 메서드와 속성을 만들고 싶을 때, 즉 VBA에서 클래스 모듈을 사용하여 사용자 정의 할 수있는 경우에 발생합니다. 클래스 모듈에는 사용자가 함수, 속성 및 개체에 대해 정의한 자체 코드 집합이 있습니다.

클래스 모듈은 개체를 만드는 데 사용됩니다. 변수 임에도 불구하고 객체를 말할 때 그것들은 작은 프로그램입니다. 코드를 작성하는 동안 우리는 보통 모듈로 작성합니다. 기본 모듈은 작업을 수행하기위한 코드를 작성하는 곳입니다. 또한 사용자 양식을 사용하여 그래픽 사용자 인터페이스를 만듭니다.

하지만 위의 이미지를 보면“Class Module”을 볼 수 있습니다. 나는 당신이이 포스트를 읽을 때까지 당신이 그것을 만지지 않았다는 것을 확신합니다. 일반 모듈 자체를 사용하여 모든 작업을 수행 할 수있을 때이 VBA 클래스 모듈이 무엇인지 궁금 할 것입니다.

클래스 모듈이란?

클래스 모듈을 사용하면 "Worksheets", "Workbooks", "Range"등과 같은 일반 모듈에 기본 제공 개체가있는 것처럼 사용자가 자신의 개체를 만들 수 있습니다.

이와 같이 클래스 모듈을 사용하여 사용자 지정 개체를 만들 수 있습니다.

클래스는 객체와 직접적인 관계가 있습니다. 예를 들어, 기계를 빌드하기위한 기계 다이어그램이 있지만 아직 기계가 아니라는 점을 기억하십시오.이 기계 다이어그램을 사용하면 이와 같은 많은 기계를 빌드 할 수 있습니다.

예를 들어 다양한 기계 브랜드를 나열하여 다양한 모델의 특성을 나열하려는 경우.

기계에는 브랜드 이름, 시리즈 번호, 기계 출력, 기계 색상, 관련 모터 수, 모터 연료 유형 등이 있습니다. 기술 용어로는 "속성"이라고합니다.

기계의 특성과 관련하여, 우리는 시작할 수 있고, 끌 수 있고, 모터의 속도를 증가시킬 수 있고, 일시 중지 할 수 있습니다. 그리고 이것을 "방법"이라고합니다.

이 VBA 클래스 템플릿은 여기에서 다운로드 할 수 있습니다 – VBA 클래스 템플릿

이론적 인 부분을 읽는 것은 항상 지루하기 때문에 볼 롤링을 시작합시다. 클래스 모듈을 삽입하려면 Visual Basic 편집기의 삽입 옵션으로 이동하십시오.

이제 아래와 같은 클래스 모듈을 볼 수 있습니다.

이것은 위에서 일반 모듈로 가지고있는 것과 유사합니다. 속성 창에서 클래스 모듈의 이름을 변경합니다. 속성 창을 보려면 F4 키를 누르십시오 .

이제 변수를 문자열로 선언하십시오.

vba에서 하위 프로 시저를 만들지 않고 변수를 선언해야하며 이번에는 "Dim"이 아닌 "Public"이라는 단어를 사용합니다.

이제 모든 모듈 및 클래스 모듈에서이 변수에 액세스 할 수 있습니다.

이제 일반 모듈로 이동하여 변수의 이름을 지정하십시오.

변수를 선언 한 후 VBA에서 데이터 유형을 할당해야합니다. 데이터 유형을 할당하는 대신 클래스 모듈의 이름, 즉 CM을 제공 할 수 있습니다.

이제 변수 "k"를 사용하여 클래스 모듈, 즉 "My Value"에서 정의한 공용 변수에 액세스 할 수 있습니다.

위 그림에서 볼 수 있듯이 값을 할당하기 위해 클래스 모듈의 변수 이름 옵션을 보여줍니다.

이제 VBA 메시지 상자에 할당 된 변수의 값을 표시합니다.

암호:

 Sub Class_Example () Dim k As New CM k.MyValue = "Hello"MsgBox k.MyValue End Sub 

F5 키를 사용하거나 수동으로이 코드를 실행하여 결과를 표시합니다.

클래스 모듈 대 객체

클래스 모듈의 초기 단계에서 모든 사람들은 클래스와 객체가 무엇인지 혼동합니다.

이를 이해하기 위해 이전의 기계 다이어그램 예를 기억하십시오. 기계를 생산하는 데 가장 먼저 필요한 것은 먼저 기계를 설계 한 다음 해당 설계로 여러 사본을 복제 할 수 있다는 것입니다.

이제 이것을 우리의 클래스 모듈과 연관 시키십시오.

  • 여기서 클래스 모듈디자인입니다. 그리고 Object디자인에 의해 생성 된 사본입니다 .
  • 한 가지 더 흥미로운 점은 클래스 모듈에서 객체를 생성하기 위해 "new"라는 단어를 사용해야한다는 것입니다.

아래는 동일한 예입니다.

워크 시트, 통합 문서 및 범위 개체와 같은 기본 제공 개체를 사용할 때 한 가지 더 "새로 만들기"라는 단어를 사용하지 않습니다.

클래스 모듈로 진행을 시작하려면 이러한 기본 사항을 알아야합니다. 다음 기사에서 우리는 다음 단계의 예를 볼 것입니다.

이것을 이해하기 어려울수록 클래스 모듈에 더 많은 시간을 할애하면 익숙해 질 것입니다.