AnsweredAssumed Answered

VBA Macro: Delete BOM table

Question asked by Rebecca Bemrose-Fetter on Nov 1, 2017
Latest reply on Nov 1, 2017 by Rebecca Bemrose-Fetter

I'm editing a macro that was written by former colleague. The macro inserts a BOM into an assembly, saves it as a text file, opens it in Excel and does a bunch of stuff for eventual importing into our work tracking software.


My problem is the code to delete the table from the Solidworks Assembly file doesn't work. As best I can tell, the failure is at the Select3 command... the selection fails (returns False). What am I missing, can anyone help?


Here's the abbreviated code:


Sub main()


'Define Active SolidWorks Document

Set swApp = Application.SldWorks

Set swModel = swApp.ActiveDoc

Set swModExt = swModel.Extension



'Get file path and title of active document

swPathName = swModel.GetPathName

swTitle = swModel.GetTitle




'Assign file path for txt file

exPathName = Left(swPathName, Len(swPathName) - 7) 'remove .sldasm suffix

txtPathName = exPathName + "_raw.txt"




'Get the name of the current configuration being used on assembly

Set swConfigMgr = swModel.ConfigurationManager

conName = swApp.GetActiveConfigurationName(swPathName)




'Specifies SolidWorks BOM template location

swBOMtemp = "[file path removed]"




'Insert BOM to model and rebuild

Set swBOMAnnotation = swModExt.InsertBomTable3(swBOMtemp, 0, 0, swBomType_Indented, conName, False, swNumberingType_Detailed, False)




'Save BOM as text file with "^" separating fields

Set swTable = swBOMAnnotation

ret = swTable.SaveAsText(txtPathName, "^")




'Delete BOM from assembly

Set swAnn = swTable.GetAnnotation

swAnn.Select3(False, Nothing)



[other stuff happens]


End Sub