□ Massege 창 소개
Creo 화면에 Pop uP 창을 뛰어 "Hello World"를 표시 합니다.
▶ 전체 코드
Option Explicit
Sub helloworld()
On Error GoTo RunError
Dim asynconn As New pfcls.CCpfcAsyncConnection
Dim conn As pfcls.IpfcAsyncConnection
Dim BaseSession As pfcls.IpfcBaseSession
Dim Session As IpfcSession
Set conn = asynconn.Connect("", "", ".", 5)
Set BaseSession = conn.Session
Set Session = BaseSession
Call Session.UIShowMessageDialog("Hello World", Nothing)
conn.Disconnect (2)
'// Cleanup
Set asynconn = Nothing
Set conn = Nothing
Set Session = Nothing
Set model = Nothing
RunError:
If Err.Number <> 0 Then
MsgBox "Process Failed : Unknown error occurred." + Chr(13) + _
"Error No: " + CStr(Err.Number) + Chr(13) + _
"Error: " + Err.Description, vbCritical, "Error"
If Not conn Is Nothing Then
If conn.IsRunning Then
conn.Disconnect (2)
End If
End If
End If
End Sub
1. Option Explicit
VBA(Visual Basic for Applications)에서 Option Explicit 문을 사용하는 이유는 코드의 안정성과 유지 관리성을 높이기 위해입니다. Option Explicit 문을 사용하면 다음과 같은 이점이 있습니다.
1). 변수 선언 강제화: Option Explicit를 사용하면 변수를 명시적으로 선언해야 합니다. 이로 인해 변수를 정확하게 선언하지 않은 경우 발생할 수 있는 오타나 다른 오류를 방지할 수 있습니다. 예를 들어, 변수를 'myVar'로 선언하고 다른 곳에서 'myvar'로 사용하는 경우에도 컴파일 오류가 발생하므로 실수를 사전에 방지할 수 있습니다.
2). 디버깅 용이성: Option Explicit를 사용하면 변수가 어떤 데이터 형식을 가지는지 명확하게 정의하므로 디버깅이 더 쉬워집니다. 변수가 어떤 유형을 가져야 하는지 알고 있으므로 코드를 이해하고 수정하기가 더 쉬워집니다.
3). 오류 방지: 변수를 명확하게 선언하면 데이터 형식과 범위를 미리 확인할 수 있으므로 실행 중에 발생할 수 있는 오류를 방지할 수 있습니다. 예를 들어, 정수를 저장해야 하는 변수에 문자열을 할당하려고 시도하면 실행 오류가 발생합니다.
4). 코드의 가독성 향상: Option Explicit를 사용하면 변수의 사용 방법과 목적을 명확하게 문서화하고 코드를 이해하기가 더 쉬워집니다.
Option Explicit 문을 사용하려면 VBA 모듈의 맨 위에 다음과 같이 작성합니다.
Option Explicit
Sub helloworld()
~
~
End Sub
모든 VBA 프로젝트에 Option Explicit를 사용하는 것을 권장합니다. 이를 통해 코드 작성과 유지 관리 과정에서 발생할 수 있는 오류를 최소화하고 코드의 신뢰성을 높일 수 있습니다.
2. Sub helloworld() ~ End Sub
SUB는 VBA의 가장 일반적인 프로시저 형식 입니다. 프로그램의 시작과 끝을 정의 합니다. VBA에서 SUB는 서브루틴(subroutine)을 정의하는 키워드입니다. 서브루틴은 주로 특정 작업을 수행하기 위해 사용되며, 매개변수를 받을 수도 있고 반환 값을 가질 수도 있습니다. 서브루틴은 일련의 코드 블록을 포함하며, 호출되어 실행됩니다.
▶ 프로시저 이름 정의 주의 할점
1) 한글 또는 영문으로 시작되어야함. 숫자는 불가능
2) Spacebar 사용금지 공백 입력 안됨. 공백은 대부분 "_"(언더바)로 처리
▶ 프로 시저 작성 예제 코드
Sub 서브루틴이름()
'// 서브루틴 코드가 여기에 들어갑니다
End Sub
여기서 설명해야 할 중요한 개념은 다음과 같습니다:
1) 서브루틴 이름: 서브루틴을 호출할 때 사용되는 고유한 이름입니다. 이름은 공백 없이 문자, 숫자, 밑줄 등으로 구성될 수 있습니다.
2) 서브루틴 코드 블록: Sub와 End Sub 사이에 있는 부분이 실제로 서브루틴의 코드입니다. 이 곳에 서브루틴이 수행할 작업을 작성합니다.
▶ 프로 시저 작성 예제 코드
Sub Main()
'//서브루틴 호출
MySubroutine
End Sub
Sub MySubroutine()
'// 이 서브루틴은 Main 서브루틴에서 호출될 수 있습니다.
'// 작업 수행
End Sub
위의 예제에서 Main 서브루틴에서 MySubroutine 서브루틴을 호출하고 있습니다.
또한, 서브루틴은 매개변수를 받을 수 있으며, Sub 선언 부분에서 매개변수를 정의할 수 있습니다. 반환 값이 필요한 경우 서브루틴 대신 함수를 사용할 수 있습니다.
서브루틴은 VBA 프로그램의 구조를 나누고 코드를 모듈화하는 데 도움이 되며, 코드의 재사용성을 높이고 유지 관리를 쉽게 만듭니다.
3. IpfcSession 함수
Creo의 Pop-UP 창을 이용하여 모델을 저장 또는 변경 합니다.
Dim BaseSession As pfcls.IpfcBaseSession
Dim Session As IpfcSession
Set conn = asynconn.Connect("", "", ".", 5)
Set BaseSession = conn.Session
Set Session = BaseSession
Call Session.UIShowMessageDialog("Hello World", Nothing)
VBA 코드 조각은 PTC Creo Parametric API를 사용하여 메시지 대화 상자를 표시하는 간단한 예제입니다. 이 코드는 Creo Parametric에서 VBA를 사용하여 메시지 대화 상자를 띄우는 방법을 보여줍니다.
여기서 주요한 부분은 `IpfcSession` 개체를 사용하여 Creo Parametric과 상호 작용하는 것입니다. 코드에서는 다음 작업이 수행됩니다:
1). `IpfcBaseSession` 및 `IpfcSession` 개체를 정의하고 선언합니다.
2). `asynconn.Connect("", "", ".", 5)`를 호출하여 Creo Parametric에 연결합니다. 이를 통해 `IpfcBaseSession`을 얻습니다.
3). `BaseSession`을 사용하여 `Session` 개체를 설정합니다.
4). `Session.UIShowMessageDialog("Hello World", Nothing)`을 호출하여 "Hello World" 메시지가 포함된 메시지 대화 상자를 Creo Parametric에서 표시합니다.
[Function] UIShowMessageDialog (Message as String, Options as IpfcMessageDialogOptions [optional]) as IpfcMessageButton
UI 메시지 대화 상자를 표시합니다.
1) Message as String
- 대화 상자에 표시할 메시지 텍스트입니다.
2) Options as IpfcMessageDialogOptions
- 메시지 대화 상자의 다양한 옵션입니다. null이면 기본 메시지 대화 상자가 표시되며,
OK 버튼과 정보 아이콘 및 제목만 있는 대화 상자가 표시됩니다.
이 코드를 실행하면 Creo Parametric에서 "Hello World"라는 메시지가 표시되어야 합니다.
▶ 참고 시이트
VBA 기초 - Hello World
■ 엑셀 Sheet에 Hello World 표시 합니다. CREO VB 개발 도구 설치 및 VBA 엑셀 설정을 완료 하였으면, 정상적으로 VBA 엑셀 편집기와 CREO 모델을 연결 상태를 확인 해야 합니다. Hello World 표시를 VBA 엑셀
tool-2020.tistory.com
프로그럄 개발 순서도 예제