Insert Column in BOM Table Example (VBA)
This example shows how to insert a part number column in a BOM table.
'------------------------------------
' Preconditions:
' 1. Drawing must be open and contain a BOM table.
' 2. BOM table must be selected (right-click the BOM
' table,
select Select, and select Table)
'
' Postconditions: A
part number column is inserted at the end of the
' existing
the BOM table.
'------------------------------------
Option Explicit
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim boolstatus As Boolean
Dim SelMgr As Object
Dim theTableAnnotation As SldWorks.TableAnnotation
Dim SelObjType As Long
Dim TableAnnotationType As Long
Sub DisplayTableColumnProps(theTableAnnotation As Object)
Dim
ColCount As Long
Dim
i As Long
Dim
ColType As swTableColumnTypes_e
Dim
ColTitle As String
Debug.Print
"Col#"; vbTab; "Type"; vbTab; "Title"
ColCount
= theTableAnnotation.ColumnCount
For
i = 0 To ColCount - 1
ColType
= theTableAnnotation.GetColumnType(i)
ColTitle
= theTableAnnotation.GetColumnTitle(i)
Debug.Print
i; vbTab; ColType; vbTab; ColTitle
Next
i
End Sub
Sub main()
Set
swApp = Application.SldWorks
Set
swModel = swApp.ActiveDoc
Set
SelMgr = swModel.SelectionManager
SelObjType
= SelMgr.GetSelectedObjectType3(1,
-1)
If
SelObjType <> swSelANNOTATIONTABLES Then
MsgBox
"Select a BOM table in the drawing before running this example."
End
End
If
Set
theTableAnnotation = SelMgr.GetSelectedObject6(1,
-1)
TableAnnotationType
= theTableAnnotation.Type
If
TableAnnotationType <> swTableAnnotation_BillOfMaterials Then
MsgBox
"Select a BOM table in the drawing before running this example."
End
End
If
Debug.Print
"Table before inserting a column..."
'
Display table before inserting a column
DisplayTableColumnProps
theTableAnnotation
'
Insert new column
boolstatus
= theTableAnnotation.InsertColumn2(swTableItemInsertPosition_Last,
0, "New Column", swInsertColumn_DefaultWidth)
boolstatus
= theTableAnnotation.SetColumnType(theTableAnnotation.ColumnCount
- 1, swBomTableColumnType_PartNumber)
Debug.Print
" "
Debug.Print
"Table after inserting a column..."
'
Display table after inserting a column
DisplayTableColumnProps
theTableAnnotation
End Sub