SolidWorksとExcelを連携してBOMを自動出力する方法【工数削減の実践手順】

設計業務の効率化Tips

アセンブリが完成したあと、部品表(BOM)をExcelに手動でコピーしていませんか?部品が100点を超えるアセンブリでこれをやると、確認だけで数十分かかります。SolidWorksにはBOMをExcelに直接出力する機能があり、マクロを使えばさらに自動化できます。

この記事でわかること

  • SolidWorksのBOM(部品表)をExcelに出力する2つの方法
  • 出力したExcelを整形・加工するコツ
  • VBAマクロで定期出力を自動化するヒント

方法1:図面のBOMテーブルをExcel出力する(最速)

  1. SolidWorksで図面を開き、BOM(部品表)を挿入する
  2. BOMテーブルを右クリック →「テーブルを保存」
  3. ファイル形式:「Excel(.xlsx)」を選択
  4. 保存先を指定して「保存」

これだけで品番・品名・員数がExcelに出力されます。最も簡単な方法で、特別な設定は不要です。

方法2:アセンブリから直接マクロで出力する(自動化向け)

図面を開かずに、アセンブリファイルから直接部品情報をExcelに書き出すVBAマクロを使う方法です。以下はコピペで使えるサンプルコードです。

' SolidWorksアセンブリからBOMをExcel出力するマクロ
' 使い方:SolidWorksでアセンブリを開いた状態でマクロを実行する

Dim swApp As Object
Dim swModel As Object
Dim swAssy As Object
Dim xlApp As Object
Dim xlBook As Object
Dim xlSheet As Object
Dim compList As Object
Dim comp As Object
Dim i As Integer

Sub ExportBOM()
    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    
    If swModel Is Nothing Then
        MsgBox "SolidWorksでアセンブリを開いてから実行してください。"
        Exit Sub
    End If
    
    ' Excelを起動
    Set xlApp = CreateObject("Excel.Application")
    xlApp.Visible = True
    Set xlBook = xlApp.Workbooks.Add
    Set xlSheet = xlBook.Sheets(1)
    
    ' ヘッダー行を設定
    xlSheet.Cells(1, 1).Value = "品番"
    xlSheet.Cells(1, 2).Value = "品名"
    xlSheet.Cells(1, 3).Value = "数量"
    xlSheet.Cells(1, 4).Value = "材質"
    
    ' アセンブリのコンポーネントを取得
    Set swAssy = swModel.GetActiveConfiguration.GetRootComponent
    Set compList = swAssy.GetChildren
    
    i = 2
    Dim comp2 As Object
    For Each comp2 In compList
        Dim swPart As Object
        Set swPart = comp2.GetModelDoc2
        If Not swPart Is Nothing Then
            xlSheet.Cells(i, 1).Value = swPart.GetCustomInfoValue("", "品番")
            xlSheet.Cells(i, 2).Value = swPart.GetTitle
            xlSheet.Cells(i, 3).Value = comp2.GetSuppression
            xlSheet.Cells(i, 4).Value = swPart.GetCustomInfoValue("", "材質")
            i = i + 1
        End If
    Next comp2
    
    MsgBox "BOM出力完了。" & i - 2 & "件の部品を出力しました。"
End Sub

マクロの実行方法

  1. SolidWorksでアセンブリを開く
  2. ツール → マクロ → 新規作成
  3. 上記コードを貼り付けて保存
  4. ツール → マクロ → 実行 で呼び出す

カスタムプロパティ名(「品番」「材質」など)は、実際に使っている名前に合わせて変更してください。

出力したExcelを使いやすく整形するコツ

  • 1行目をテーブル化(Ctrl+T)してフィルターをつける
  • 条件付き書式で数量0の行をグレーアウト
  • VLOOKUP/XLOOKUPで購入先・単価マスタと連携

まとめ

BOMのExcel出力は「方法1:図面から右クリック出力」だけでも十分時短になります。更新のたびに手動で出力するのが面倒になったら、マクロによる自動化を検討してみてください。部品点数が多いプロジェクトほど、自動化の効果が大きくなります。

STEP UP

BOMを自動で出せるようになったら、
次は「設計全体を仕組みで回す」段階へ

BOMの自動出力は、設計業務効率化の入口に過ぎない。
本当に工数を削れる設計者は、モデリングの段階からBOMを意識した構成を作っている。
カスタムプロパティの設計・アセンブリ構成の思想・図面との連携——
これらは「なんとなく使っている」状態では身につかない。

Udemyには現役エンジニアが監修したSolidWorksコースがあり、
セール時には1,500円〜で受講できる。
「手を動かしながら体系的に学ぶ」には一番コスパが高い選択肢だと思っている。


UdemyでSolidWorksコースを見てみる →

※ 頻繁にセール(最大90%OFF)が実施されます。気になるコースはウィッシュリストに追加しておくのがおすすめです。

タイトルとURLをコピーしました