📄 この記事の要約PDF(VBAマクロ チートシート+コードサンプル付き)は無料ダウンロードできます
設計者として、そう感じたことは何度もある。
実は、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. マクロ記録で最速スタート(コード不要)
プログラミングを書かなくても、「操作を録画してマクロ化」する機能がある。まずここから試してほしい。
- ツール → マクロ → 記録を開始
- 自動化したい操作を実際に行う(例:PDF保存・ビュー変更・カスタムプロパティ入力)
- ツール → マクロ → 記録を停止
- ファイル名をつけて保存(拡張子:
.swb) - 次回からはツール → マクロ → 実行で呼び出すだけ
💡 記録したコードは「最初の教科書」になる
ツール → マクロ → 編集 で記録されたコードを開くと、SWAPIの構造が見える。「こう書けばこの操作ができるのか」という発見が積み重なってコードへの理解が深まる。最初から書こうとせず、読むところから始めると楽だ。
3. コピペで使えるサンプルマクロ 3選
サンプル1:アクティブな図面をPDFで保存する
最もよく使われるマクロの一つ。図面を開いた状態で実行すると、同じフォルダにPDFが自動保存される。
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自動出力マクロの土台になる。
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の前処理にも使える。
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枚にまとめました
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プロンプト雛形 / エラー対処表 / 無料ダウンロード
STEP UP
マクロを「使える」から
「作れる」にレベルアップしたい方へ
コピペで動かす段階から、自分でゼロから書けるレベルになると、自動化できる範囲が一気に広がる。
VBAの基礎・変数・ループ・条件分岐——これらは設計の知識とは別に学ぶ必要がある。
Udemyには設計者向けの入門コースが充実しており、セール時には1,500円〜で学べる。
COURSE 01
VBA入門
(Excel・SolidWorks対応)
変数・ループ・条件分岐から始めて、SolidWorksマクロを自力で書けるレベルへ。まず最初に取り組むならこちら。
COURSE 02
Python入門
(設計者・エンジニア向け)
VBAの次のステップ。DB・API・AI連携まで広がる。ChatGPTとの相性も抜群で、大規模自動化に向いている。
※ 頻繁にセール(最大90%OFF)が実施されます。気になるコースはウィッシュリストに追加しておくのがおすすめです。
CADHACK — 設計者のAI・CAD効率化メディア
機械設計エンジニアが実務目線で発信するSolidWorks・AI・業務効率化の情報サイトです。


