본문 바로가기
  • 환영 합니다 ! Welcome!
VBA For Creo

작업공간에 있는 *.prt 타입 파일들의 이름을 모두 표시 합니다

by ToolBOX01 2022. 9. 5.
반응형

현재 작업공간의 *.prt 파일 수량 및 이름을 표시 합니다. 

1) part 파일

    Set oStringseq = session.ListFiles("*.prt", EpfcFILE_LIST_LATEST, cutrentworkfolder)

    

2) asm 파일

    Set oStringseq = session.ListFiles("*.asm", EpfcFILE_LIST_LATEST, cutrentworkfolder)

 

3) drw 파일 

    Set oStringseq = session.ListFiles("*.drw", EpfcFILE_LIST_LATEST, cutrentworkfolder) 

 

■ 소스 코드

Sub workfolderModel_Nanme()
    
On Error GoTo RunError
    Dim asynconn As New pfcls.CCpfcAsyncConnection
    Dim conn As pfcls.IpfcAsyncConnection
    Dim session As pfcls.IpfcBaseSession
    Dim Model As pfcls.IpfcModel
    Dim oStringseq As Cstringseq
    Dim cutrentworkfolder As String, oFilename As String, oEndword As String, oCroeFileName As String
    Dim i As Integer
    
    Set conn = asynconn.Connect("", "", ".", 5)
    
    'Get the current session
    Set session = conn.session

    ' Current Creo Wokrfolder
    cutrentworkfolder = session.GetCurrentDirectory
        
    Set oStringseq = session.ListFiles("*.prt", EpfcFILE_LIST_LATEST, cutrentworkfolder)

    For i = 0 To oStringseq.Count - 1
               Cells(i + 3, "C") = i + 1
               oFilename = oStringseq.Item(i)
               oEndpos = Len(oFilename) - InStrRev(oFilename, "\", -1, vbTextCompare)
               oEndword = Right(oFilename, oEndpos)
               OcreoFileLength = Len(oEndword) - InStr(oEndword, ".")
               oCroeFileName = Left(oEndword, (Len(oEndword) - OcreoFileLength + 3))
               Cells(i + 3, "D") = oCroeFileName
    Next i

    MsgBox "Part 파일 총 갯수는" & oStringseq.Count & " 입니다", vbInformation

    'Disconnect with Creo
    conn.Disconnect (2)

 

     'Cleanup
    Set asynconn = Nothing
    Set conn = Nothing
    Set session = Nothing
    Set Model = Nothing

         
Exit Sub
    
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

 

 

■ 실습