본문 바로가기
  • Welcome!
VBA, VB.NET For Creo

BOM LEVEL 표시 방법

by ToolBOX01 2023. 1. 6.
반응형

■ BOM 레벨 표시는 CELL이 변경 됩니다. "L1", "L2" . . . 는 변경 됩니다.
for ~ next 문을 사용 하여 어셈블이 가지고 있는 모델의 레벨 표시 하기 위한 cells를 자동으로 만듭니다. 

>> 코드

Option Explicit
Sub level()
    
    Dim i As Long 
    For i = 0 To 4
    
        Columns(i + 2).Insert
        Cells(7, i + 2) = "L" & i + 1
        Cells(7, i + 2).ColumnWidth = 3
       
    Next i
    
End Sub

 

>> 엑셀 VBA를 사용해야 하는 이유

 

엑셀 매크로 프로그램(1)

아주 오래 전에 제가 4차 산업혁명과 MS 엑셀과 관련한 내용을 포스팅해 드린 적이 있습니다. 그런데 내...

blog.naver.com

 


■ BOM 항목 CELL을 배열로 만들기

 

Dim i As Long

'// Bom Title Count And Range
Dim oBomColumnscount As Long
oBomColumnscount = Cells(7, Columns.count).End(xlToLeft).Column


'// Array 정의
Dim BomTitle() As String
ReDim BomTitle(oBomColumnscount - 1)

'// Array 값 지정
For i = 0 To oBomColumnscount - 1
     BomTitle(i) = Cells(7, i + 1)     
Next i

 

■ BOM을 구성 하는 레벨의 깊이를 구하는 코드 입니다. Array를 구성하는 값이 최대인 값을 구합니다.

Sub ko()

    Dim koko(4) As Long
    
    koko(0) = 1
    koko(1) = 5
    koko(2) = 10
    koko(3) = 3
    
    MsgBox Application.Max(koko)

End Sub

 


어셈블 파일을 구성 하는 파일들은 매우 깊은 조립 레벨을 가질수 있습니다 

[ 모델 Tree ]
[ E-BOM 도면 ]

 

>> 코드

조립 Component는 총 "9 개"로 구성 되어 있고, 레벨 1 부터 레벨 3까지 조립 되어 있습니다.

oSampleArray(0) = 1
oSampleArray(1) = 1
oSampleArray(2) = 1
oSampleArray(3) = 2
oSampleArray(4) = 3
oSampleArray(5) = 3
oSampleArray(6) = 1
oSampleArray(7) = 2
oSampleArray(8) = 2

Option Explicit
Sub level()
    
    Dim oSampleArray(10), i, j, oLevelMax, oLevel As Long
    oSampleArray(0) = 1
    oSampleArray(1) = 1
    oSampleArray(2) = 1
    oSampleArray(3) = 2
    oSampleArray(4) = 3
    oSampleArray(5) = 3
    oSampleArray(6) = 1
    oSampleArray(7) = 2
    oSampleArray(8) = 2
    oSampleArray(9) = 1
    
    oLevelMax = Application.Max(oSampleArray)
    
    '// Level Text Display
    For i = 0 To oLevelMax - 1
    
        Columns(i + 3).Insert
        Cells(7, i + 3) = "L" & i + 1
        Cells(7, i + 3).ColumnWidth = 3
    
    Next i
    
    '// Level Display
    For j = 0 To 9
    
        oLevel = oSampleArray(j)
        Cells(j + 8, oLevel + 2) = oSampleArray(j)
    
    Next j
    
End Sub

 

'VBA, VB.NET For Creo' 카테고리의 다른 글

Coordinate Systems and Transformations  (0) 2023.01.13
Part List & BOM & Access DB  (0) 2023.01.12
Template Model] 자동으로 치수 변경  (1) 2023.01.04
라이브러리 관리 프로그램 #2  (0) 2023.01.03
Family Table Part  (1) 2023.01.01