SolidWorks APIとVBAマクロで作業を自動化する方法【プログラミング未経験者向け入門】

設計業務の効率化Tips


📄 この記事の要約PDF(VBAマクロ チートシート+コードサンプル付き)は無料ダウンロードできます

▼ 今すぐPDFをダウンロード

「毎回同じ操作をしているのに、なぜ自動化できないんだろう」
設計者として、そう感じたことは何度もある。

実は、SolidWorksはAPIを公開していて、VBAマクロでほぼすべての操作を自動化できる
しかもChatGPTに頼めば、プログラミング未経験でも動くコードが手に入る時代だ。

この記事では、マクロ記録による最速スタートから、コピペで使えるサンプルコード・ChatGPT活用法まで、現場目線でまとめた。

1. SolidWorks API と VBAマクロとは

まず言葉の整理から。ここがわかると全体像がつかめる。

用語 意味 使い方
SolidWorks API SolidWorksを外部から操作するための命令セット。ファイルを開く・寸法を変える・保存するなど、ほぼすべての操作をコードで制御できる VBA・Python・C#などから呼び出す
VBAマクロ SolidWorksに内蔵されたVB言語(ExcelのマクロとほぼおなじVBA)でAPIを呼ぶ仕組み ツール→マクロから実行。追加ソフト不要
マクロ記録 自分の操作を録画してコードに変換してくれる機能 プログラミング不要で始められる最速スタート

ひと言で言うなら、「SolidWorksに話しかける言語がAPIで、それをVBAで書いたのがマクロ」だ。難しく聞こえるが、最初の一歩はコードを書くことじゃない。

2. マクロ記録で最速スタート(コード不要)

プログラミングを書かなくても、「操作を録画してマクロ化」する機能がある。まずここから試してほしい。

  1. ツール → マクロ → 記録を開始
  2. 自動化したい操作を実際に行う(例:PDF保存・ビュー変更・カスタムプロパティ入力)
  3. ツール → マクロ → 記録を停止
  4. ファイル名をつけて保存(拡張子:.swb
  5. 次回からはツール → マクロ → 実行で呼び出すだけ

💡 記録したコードは「最初の教科書」になる

ツール → マクロ → 編集 で記録されたコードを開くと、SWAPIの構造が見える。「こう書けばこの操作ができるのか」という発見が積み重なってコードへの理解が深まる。最初から書こうとせず、読むところから始めると楽だ。

3. コピペで使えるサンプルマクロ 3選

サンプル1:アクティブな図面をPDFで保存する

最もよく使われるマクロの一つ。図面を開いた状態で実行すると、同じフォルダにPDFが自動保存される。

Sub SaveAsPDF()
Dim swApp As Object
Dim swModel As Object
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc

If swModel Is Nothing Then
MsgBox “図面を開いてから実行してください。”
Exit Sub
End If

‘ 元ファイルと同じフォルダにPDF保存
Dim sPath As String
sPath = Left(swModel.GetPathName, _
Len(swModel.GetPathName) – 6) & “.pdf”

swModel.Extension.SaveAs sPath, 0, 0, Nothing, 0, 0
MsgBox “PDF保存完了: ” & sPath
End Sub

サンプル2:カスタムプロパティを取得して表示する

部品ファイルの品番・材質などのカスタムプロパティを読み取る基本パターン。BOM自動出力マクロの土台になる。

Sub GetCustomProperties()
Dim swApp As Object
Dim swModel As Object
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc

If swModel Is Nothing Then
MsgBox “部品ファイルを開いてから実行してください。”
Exit Sub
End If

‘ カスタムプロパティを取得(名前は実際の設定に合わせて変更)
Dim hinban As String
Dim hinmei As String
Dim material As String
hinban = swModel.GetCustomInfoValue(“”, “品番”)
hinmei = swModel.GetCustomInfoValue(“”, “品名”)
material = swModel.GetCustomInfoValue(“”, “材質”)

MsgBox “品番: ” & hinban & vbCrLf & _
“品名: ” & hinmei & vbCrLf & _
“材質: ” & material
End Sub

サンプル3:ビューをアイソメトリックに切り替えてリビルド

プレゼン用に一発でビューを整えるマクロ。Motion Studyの前処理にも使える。

Sub SetIsometricView()
Dim swApp As Object
Dim swModel As Object
Dim swView As Object
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swView = swModel.ActiveView

‘ アイソメトリックビューに切り替え
swView.FrameLeft = 0
swModel.ShowNamedView2 “*Isometric”, 7

‘ リビルド(再構築)
swModel.ForceRebuild3 False
MsgBox “アイソメビューに切り替えました。”
End Sub

4. よく使うSolidWorks API 早見表

操作 API / コード例 用途
SWアプリ取得 Application.SldWorks すべてのマクロの起点
アクティブDoc取得 swApp.ActiveDoc 現在開いているファイル操作
ファイルパス取得 swModel.GetPathName 保存先パスの生成
カスタムProp取得 swModel.GetCustomInfoValue("","品番") BOM・ファイル名生成
カスタムProp設定 swModel.AddCustomInfo3("","品番",30,"ABC-001") プロパティの一括設定
ファイル保存 swModel.Extension.SaveAs PDF / DXF / STP形式で保存
強制リビルド swModel.ForceRebuild3 False モデルの再計算
メッセージ表示 MsgBox "完了" 処理確認・デバッグ

📌 API早見表・サンプルコード・ChatGPTプロンプト雛形をPDF1枚にまとめました

▼ 無料PDFをダウンロード

5. ChatGPTでマクロを自動生成する方法

2025年現在、ChatGPTはVBAとSolidWorks APIの両方を学習データとして持っている。つまり「〇〇をするマクロを作って」と伝えると、動くコードが返ってくる。完璧ではないが、エラーが出ても「このエラーを直して」と貼るだけで修正してくれる。

精度が上がるプロンプトの書き方

以下の4つを含めると、精度が格段に上がる。

💡 コピペで使えるプロンプト雛形

「SolidWorksのVBAマクロを作ってください。
対象:[部品 / アセンブリ / 図面]
やりたいこと:[具体的な操作]
入力:[何を元データにするか]
出力:[何を結果として得たいか]
SolidWorks APIを使い、.swb形式のマクロエディタで動作するコードでお願いします。」

エラーが出たときの修正依頼

マクロを実行してエラーが出たら、エラーメッセージをそのままChatGPTに貼り付けて「このエラーを直してください」と送るだけでいい。コードの理解は後からついてくる。まず動かすことを優先する。

6. 【実話】「PDF保存ボタン」を作った日の話

入社5年目くらいのことだ。

毎週月曜日の朝、図面を30枚前後PDFに変換してサーバーにアップするのが私の担当業務だった。1枚ずつ「ファイル → 名前を付けて保存 → PDF → 保存先を選ぶ → 保存」を繰り返す作業で、30枚やると優に30分かかる。しかも単純作業なので眠くなる。月曜の朝に。

あるとき、「これマクロでいけるんじゃないか」と思って調べ始めた。VBAなんて触ったこともなかったが、ChatGPTに「図面をPDFで自動保存するSolidWorksマクロ」と聞いたら、5分でコードが返ってきた。

コピペして実行したら、エラーが出た。エラーメッセージをそのままChatGPTに貼ったら修正案が返ってきた。3回やり取りしたら動いた。

30枚のPDF変換がボタン1つで3分になった。毎週月曜の朝が少し楽になった。

「プログラミングができないから自動化できない」は、もう言い訳にならない時代だと思う。ChatGPTは最高の「コーディング代行者」だ——ちょっと文句を言わないのが逆に怖いくらいだが。

7. よくあるエラーと対処法

エラー・症状 原因 対処法
「オブジェクト変数またはWithブロック変数が設定されていません」 SolidWorksが起動していないか、ファイルが開いていない SWを先に起動し、対象ファイルを開いてから実行
「ファイルが見つかりません」 パスの指定ミス・存在しないフォルダ GetPathNameで動的にパスを取得する
「型が一致しません」 変数の型(String/Long/Object)のミス 変数宣言を確認、Dim文を見直す
「メソッドまたはデータメンバーが見つかりません」 APIの呼び方が間違っている SolidWorks API Helpで正しいメソッド名を確認
マクロは動くが期待と違う結果になる 対象ファイルの種類が違う(部品/図面を混同) swModel.GetTypeを使って種類を判定してから処理

8. 次のステップ:Pythonへの拡張

VBAマクロに慣れてきたら、次はPythonからSolidWorks APIを呼ぶことも検討できる。Pythonは文法がシンプルで、ChatGPTとの相性も抜群だ。

比較 VBAマクロ Python + API
導入のしやすさ ◎ SWに標準内蔵 △ 環境構築が必要
コードの読みやすさ △ やや読みにくい ◎ 直感的
外部連携 △ Excelが主 ◎ DB・API・AIと連携可能
ChatGPTとの相性 ○ 良好 ◎ 非常に良好
おすすめの用途 単発の自動化・社内共有 大規模自動化・データ連携

まずVBAで自動化の感覚をつかんでから、Pythonに移行するのが最もスムーズなルートだ。

9. まとめ

  • マクロ記録から始める——コード不要で最速スタートできる
  • サンプルコードをコピペして動かす——理解は後からついてくる
  • ChatGPTをコーディング代行に使う——プロンプト雛形を活用する
  • エラーはChatGPTに貼るだけ——3回のやり取りで大抵直る
  • 慣れてきたらPythonへの拡張を検討する

10. チートシートPDFダウンロード

この記事の内容をA4印刷用PDFにまとめました。API早見表・サンプルコード3本・ChatGPTプロンプト雛形・エラー対処表が1枚に収まっています。

📄 SolidWorks API & VBAマクロ 入門チートシート(印刷用PDF)

API早見表 / サンプルコード3本 / ChatGPTプロンプト雛形 / エラー対処表 / 無料ダウンロード


⬇️ PDFを無料ダウンロード


CADHACK — 設計者のAI・CAD効率化メディア
機械設計エンジニアが実務目線で発信するSolidWorks・AI・業務効率化の情報サイトです。

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