VBA(Visual Basic for Applications)에서 **Property, Sub, Function**은 코드의 구조를 만드는
프로시저(Procedure)의 세 가지 주요 형태입니다.
프로시저(Procedure)
하나의 목적을 가진 코드 묶음으로, 프로그램의 기본 구성 단위입니다.
작업 단위를 이름으로 묶어서 나중에 불러 쓸 수 있는 코드 덩어리
VBA 실행 프로그램입니다. 이름을 가지고 있습니다.
| 구분 | 반환값 | 호출 방식 | 주 사용 위치 | 예시 |
| Sub | ❌ 없음 | 단독 실행 | 일반 모듈 | Call DoSomething |
| Function | ✅ 있음 | 수식처럼 사용 가능 | 일반 모듈 | result = Add(3,4) |
| Property | ✅ 있음 | 속성 접근처럼 사용 | 클래스 모듈 | obj.Name = "홍길동" |
**클래스(Class)**란,
“현실 세계의 어떤 개념(사람, 자동차, 제품 등)을 코드로 표현한 설계도” 입니다 예를 들어 **사람(Person)**이라는 개념을 코드로 만들면 아래와 같은 객체를 만들어 사용 합니다.
- 이름(name)
- 나이(age)
- 인사하기(sayHello)
이런 속성과 동작을 가진 클래스를 만들 수 있습니다.
Property — “객체의 속성”을 정의하는 절차
설명:
클래스 모듈(Class Module)에서 사용되며, 객체의 **속성(프로퍼티)**을 정의합니다.
즉, 변수처럼 보이지만 내부적으로 값을 가져오거나 설정할 때 코드가 실행되도록 만듭니다.
종류:
| 유형 | 설명 |
| Property Get | 속성값 읽기(Get) |
| Property Let | 속성값 쓰기(Set) – 일반 데이터형 |
| Property Set | 속성값 쓰기(Set) – 객체형 |
예시 :
'// 클래스 모듈 (예: clsPerson)'//
Private pName As String
Property Get Name() As String
Name = pName
End Property
Property Let Name(Value As String)
pName = Value
End Property
'// 일반 모듈//'
Sub TestProperty()
Dim person As New clsPerson
person.Name = "홍길동" ' Property Let 실행
MsgBox person.Name ' Property Get 실행
End Sub
👉 이렇게 하면, person.Name은 단순한 변수처럼 보이지만, 내부적으로 Property 코드를 거쳐 처리됩니다.
Sub 프로시저
동작만 수행하고 결과는 반환하지 않음 . 아래 Sub 프로시저 ( ShowMessage()) 를 실행 합니다.
Sub ShowMessage()
MsgBox "안녕하세요!"
End Sub
호출 : 작성된 Sub 프로시저 ( ShowMessage())를, 자신이 만든 코드에 삽입하여 실행 합니다.
Call ShowMessage
'// 또는 그냥 //'
ShowMessage
Function 프로시저
결과값을 반환할 수 있음
Function Add(a As Integer, b As Integer) As Integer
Add = a + b
End Function
호출: 작성된 Function 프로시저 (Function Add ())를, 자신이 만든 코드에 삽입하여 실행 합니다.
Sub TestAdd()
Dim result As Integer
result = Add(3, 5)
MsgBox result ' 8 출력
End Sub
◎ Sub AllowDuplicateModelItems (val as Boolean)
이 메서드는 Creo 세션 내에서 **동일한 Creo Parametric 항목(예: 동일한 이름을 가진 매개변수)**에 대해 API 모델 항목 객체가 두 번 이상 생성되는 것을 허용할지 여부를 설정합니다.
주의사항:
설명에 언급된 것처럼, 이것이 응용 프로그램(VBA 코드)에서 제대로 처리되지 않으면 **메모리 손상(memory corruption)**을 유발할 수 있는 잠재적 위험이 있습니다.
| val 값 | 메서드 호출 | 중복 제어 기능 | 중복 생성 허용 여부 |
| True | SubAllowDuplicateModelItems(True) | 꺼짐 (Off) | 허용 (기본 동작) |
| False | SubAllowDuplicateModelItems(False) | 켜짐 (On) | 금지/제한 |
예제 코드
Dim Session As IpfcBaseSession
Session.AllowDuplicateModelItems (False)
MsgBox "Creo 세션에서 중복 모델 항목 생성 제어 기능이 활성화되었습니다 (False 전달).", vbInformation
by korealionkk@gmail.com

'업무 자동화 > VBA, VB.NET For Creo' 카테고리의 다른 글
| IpfcBaseSession : Method (Sub CopyFileFromWS) (0) | 2025.10.31 |
|---|---|
| IpfcBaseSession : Method (Sub AuthenticateBrowser) (0) | 2025.10.30 |
| IpfcBaseSession (0) | 2025.10.28 |
| Excel VBA Study] Assembly #1 (2) | 2025.07.23 |
| IpfcBaseSession.ExecuteModelCheck() #1 (3) | 2025.07.22 |