본문 바로가기
  • Welcome!
VBA For Creo

VBA 기초 - Hello World

by ToolBOX01 2022. 8. 22.
반응형

■ 엑셀 Sheet에 Hello World 표시 합니다.

CREO VB 개발 도구 설치 및  VBA 엑셀 설정을 완료 하였으면, 정상적으로 VBA 엑셀 편집기와 CREO 모델을 연결 상태를 확인 해야 합니다. Hello World 표시를 VBA 엑셀에서 아래 코드를 입력 하여 실행 합니다.

 

1. VBA 엑셀 에서 "Hello World" 문장을  Cell에 표시 하기 - 소스 코드

Sub 헬로월드()
    'Sheet1의 "A1"에 "hello world"를 출력 하시오.
    Sheet1.Range("A1").Value = "hello world"
End Sub

 

2. VBA 엑셀 에서 "Hello World" 문장을  여러번 Cell에 표시 하기 - 소스 코드

Sub 헬로월드()
    'Sheet1의 "A1"에 "hello world"를 출력 하시오.
    Sheet1.Range("A1:A100").Value = "hello world"
End Sub

 

3. VBA 엑셀 에서 "Hello World" 문장을 메세지 창에 표시 하기 - 소스 코드

 

Sub 헬로월드()
    Call MsgBox("hello world")
End Sub

 

▶ VBA 엑셀  설정 자세히 알아보기

 

01 엄마도 따라 할 수 있는 Excel VBA - 시작

관련글 2012/12/10 - [Excel VBA/VBA 배우기] - 01 엄마도 따라 할 수 있는 Excel VBA - 시작 2012/12/10 - [Excel VBA/VBA 배우기] - 02 엄마도 따라 할 수 있는 Excel VBA - Range 사용하기 2012/12/28 - [Excel..

krksap.tistory.com


 

■  활성화된 Creo 파일, 메세지 창으로 표시 하기 - 예제 소스 코드

Sub Model_Nanme()

    Dim asynconn As New pfcls.CCpfcAsyncConnection
    Dim conn As pfcls.IpfcAsyncConnection
    Dim session As pfcls.IpfcBaseSession
    Dim Model As pfcls.IpfcModel
    
    Set conn = asynconn.Connect("", "", ".", 5)
    Set session = conn.session
    Set Model = session.CurrentModel
    Call MsgBox(Model.Filename)
   
    'Disconnect with Creo
    conn.Disconnect (2)
    
    'Cleanup
    Set asynconn = Nothing
    Set conn = Nothing
    Set session = Nothing
    Set Model = Nothing
    
End Sub

 

IpfcSession 클래스에 포함된 Creo Parametric Session 개체는 VB API의 최상위 개체입니다. Creo Parametric의 데이터에 액세스하는 모든 프로그램은 보다 구체적인 데이터에 액세스하기 전에 먼저 IpfcSession 개체에 대한 핸들을 가져와야 합니다.

IpfcSession 개체에는 다음 작업을 수행하는 메서드가 포함되어 있습니다.

• 모델 및 창 액세스(모델 및 Windows 장에서 설명).
• Creo Parametric 사용자 인터페이스 작업.
• 세션 내에서 대화식으로 항목을 선택할 수 있습니다.
• 선 스타일, 색상 및 구성 옵션과 같은 전역 설정에 액세스

 

■ 변수

프로그래밍 시 가장 먼저 하는 것 중 하나가 변수의 설정입니다. 엑셀 VBA에서는 "Dim"이라는 단어를 사용하여 선언을 합니다. 변수를 선언할 시 아래의 사항은 주의해서 사용해야 합니다.

​(1) 변수의 이름에 공백이 있으면 안됩니다.
(2) 변수의 이름은 숫자로 시작하지 못합니다.
(3) 변수의 이름에 특수문자를 사용할 수 없습니다.
(4) 변수의 이름은 대소문자를 구분하지 않습니다. (소문자로 i 선언 시 대문자 I는 중복으로 선언 불가)

 

▶ 변수 선언 방법 자세히 알아보기

 

[엑셀 VBA 기초] 변수 선언

변수에 대한 내용은 조금 재미 없을 수 있습니다. 하지만 이 변수는 이후에 배울 '개체', '...

blog.naver.com

■ VBA 엑셀  프로그램 실행 결과


Creo 안에 메세지 창 뛰우기

 

Sub helloworld()

    Dim asynconn As New pfcls.CCpfcAsyncConnection
    Dim conn As pfcls.IpfcAsyncConnection: Set conn = asynconn.Connect("", "", ".", 5)
    Dim oBaseSession As IpfcBaseSession: Set oBaseSession = conn.Session
    Dim oSession As IpfcSession: Set oSession = oBaseSession
          
    Call oSession.UIShowMessageDialog("Message to show inside Creo", Nothing)
     
    'Disconnect with Creo
    conn.Disconnect (2)
    
End Sub
 

■ VBA 엑셀  프로그램 실행 결과


VBA 엑셀 파일 오픈 하기 - 매크로 오류 해결

 

 

잠재적으로 위험한 매크로가 차단되었습니다.

컴퓨터에 차단된 많은 파일이 있는 특정 폴더가 있고 이 폴더의 모든 파일을 신뢰하려는 경우 해당 폴더를 신뢰할 수 있는 위치로 추가할 수 있습니다. 경고: 여기에 저장된 모든 파일을 신뢰할

support.microsoft.com

 

Creo VAB 개발을 위한 템플릿 파일을 추가 합니다

VBA Start Tempate.xlsm
0.02MB

 

Option Explicit
Sub TEMPLATE()

    Application.EnableEvents = False
    Dim asynconn As New pfcls.CCpfcAsyncConnection
    Dim conn As pfcls.IpfcAsyncConnection:
    
    '// Creo Connect Check
    On Error Resume Next
    Set conn = asynconn.Connect("", "", ".", 5)
    
        If conn Is Nothing Then
        
           MsgBox "Error occurred while starting new Creo Parametric Session", vbInformation, "www.idt21c.com"
           Exit Sub
           
        End If

    On Error GoTo RunError
    
    Dim oSession As pfcls.IpfcBaseSession: Set oSession = conn.Session
    Dim oModel As IpfcModel: Set oModel = oSession.CurrentModel
    Dim oSolid As IpfcSolid: Set oSolid = oModel
    
   
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    conn.Disconnect (2)
    
    'Cleanup
    Set asynconn = Nothing
    Set conn = Nothing
    Set oSession = Nothing
    Set oModel = 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