Ausprobiert habe ich es nicht, aber es muss in der Api von SolidWorks jede Tabellenzelle einmal durch laufen werden und die maximale Länge einer Zelle innerhalb der Spalte ermittelt werden, um anschließend die Breite zu setzen.
sldworks.sldworks => modeldoc2 (ActiveDoc) => DrawingDoc:
Den Featurebaum nach einer Stückliste absuchen (BomFeat)
Damit bekomme ich ein Interface für TableAnnotation. Jede Tabellenzelle GetCellTextFormat abrufen und im TextFormat die LineLength abfragen. Wenn der höchste Wert gefunden wurde, diesen Wert plus etwas ExtraLuft als Spaltenbreite (SetColumnWidth) setzen. Ob die Einheiten zu einander passen, habe nie probiert.
Als guten Startpunkt für dsa Makro halte ich:
Get Components in Each BOM Table Row Example (VBA)
aus der API-Hilfe für geeignet.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP