「毎日同じ操作を繰り返していて、正直面倒くさい…」
「マクロ作りたいけど、プログラミング未経験なので難しそう…」
そんな風に思っていませんか。
SOLIDWORKSのマクロは、実は「マクロ記録機能」を使えばプログラミング未経験でも作り始められます。
さらに一歩踏み込んでVBA(Visual Basic for Applications)を編集できるようになると、繰り返し作業の自動化やミス防止など、設計業務の効率が大きく変わります。
この記事では、SOLIDWORKSマクロをゼロから作る手順を、VBA初心者にもわかりやすいステップ形式で解説します。
マクロ記録の使い方からVBAエディタでの編集、よくあるエラーの対処法まで一通り押さえられる内容です。
1. 【基礎知識】SOLIDWORKSマクロとVBAの基礎知識
SOLIDWORKSにおける「マクロ」とは、SOLIDWORKS上での操作を自動化する小さなプログラムのことです。
中身は「VBA(Visual Basic for Applications)」というプログラミング言語で書かれており、拡張子は .swp(または.swb)になります。
プログラミング未経験でも、SOLIDWORKS自体が「操作を自動でコードに変換してくれる」機能を持っているため、コードを一から書かなくても最初のマクロは作れます。
マクロで自動化できる操作の例は以下の通りです。
- 図面やモデルの一括保存・一括エクスポート
- 部品表(BOM)や属性情報の自動入力
- 繰り返し行っているチェック作業の自動化
- 複数ファイルへの一括処理
「毎回同じ手順をクリックしている」みたいな作業であれば、マクロ化できる可能性が高く、マクロ化する意味があります。
2. 【準備】マクロを作る前の準備
実際に手を動かす前に、以下の3点を確認しておきましょう。
準備①:開発タブ・マクロツールバーの表示
SOLIDWORKSのメニューから「ツール」→「マクロ」を選択できることを確認してください。
表示されていない場合は、ツールバーのカスタマイズから「マクロ」ツールバーを有効化します。
準備②:マクロファイルの保存先を決めておく
マクロファイルは保存場所によって管理のしやすさが変わります。
保存先の考え方や、後述するツールバーへのボタン登録の詳しい手順は、以下の記事で画像付きで解説しているので、あわせて確認しておくとスムーズです。
準備③:VBAエディタを確認する
マクロファイルを右クリックし「編集」を選ぶと、VBAエディタ(Visual Basic Editor)が起動します。
この画面がマクロのコードを書く・直す場所になります。
最初はVBAエディタのウインドウに何があるかだけ確認できれば十分です。
3. 【実践】マクロ記録機能でとにかく動かしてみる
VBAの文法をゼロから学ぶより先に、まずは「操作を記録してコード化する」体験をしてみましょう。
SOLIDWORKS初心者が最初につまずきにくい方法です。
ステップ1:記録を開始する
「ツール」→「マクロ」→「記録」をクリックします。画面右下にマクロ記録中のアイコンが表示されます。
ステップ2:自動化したい操作を実際に行う
たとえば「部品を等角図表示にして、影付きシェイディングで表示する」といった、いつも行っている操作をそのまま実行します。
ステップ3:記録を停止して保存する
再度「ツール」→「マクロ」→「停止」をクリックすると、保存ダイアログが表示されます。任意のファイル名で .swp として保存すれば完成です。
保存したマクロは「ツール」→「マクロ」→「実行」から呼び出せます。記録した操作がそのまま自動で再現されれば成功です。
このマクロ記録機能で自動生成されたコードをVBAエディタで開いてみると、「どんな操作がどんなコードになるのか」が実例として確認できます。次のステップでコードを読み解く際の教材としても活用できます。
実は、すべての操作がマクロの記録機能で記録できるわけではありません。
例えば、カスタムプロパティの編集・登録等は、マクロの記録コマンドでは記録されません。
4. 【実践】VBAエディタでコードを編集する
記録だけでは対応できない条件分岐や繰り返し処理を組み込みたい場合は、VBAエディタでコードを直接編集します。
ステップ1:VBAエディタを開く
保存したマクロファイルを右クリックして「編集」を選択します。
ステップ2:コードの基本構造を確認する
記録されたマクロには、以下のような基本構造があります。
Sub main()
Dim swApp As Object
Set swApp = Application.SldWorks
Dim swModel As Object
Set swModel = swApp.ActiveDoc
' ここに自動化したい処理を書く
End Sub
Sub main() から End Sub までが1つのマクロの処理単位です。swApp はSOLIDWORKSアプリケーション自体、swModel は現在開いているモデル(部品・アセンブリ・図面)を指すオブジェクトとして扱われます。
ステップ3:繰り返し処理を組み込む
たとえば「複数のパーツに同じ処理を行う」ような場合は、For文やDo While文で繰り返し処理を追加します。
Dim i As Integer
For i = 1 To 10
' 1〜10回繰り返したい処理
Next i
ステップ4:条件分岐を組み込む
「ファイル形式によって処理を変える」といった場合は、If文で条件分岐を追加します。
If swModel.GetType = swDocPART Then
' パーツの場合の処理
ElseIf swModel.GetType = swDocASSEMBLY Then
' アセンブリの場合の処理
End If
ステップ5:動作確認とデバッグ
VBAエディタ内で F5 キーを押すと、その場でマクロを実行できます。想定通り動かない場合は、F8 キーで1行ずつ処理を実行する「ステップ実行」を使うと、どこで問題が起きているか特定しやすくなります。

一度に完璧なコードを書こうとせず、「記録機能で土台を作る→少しずつコードを足す→都度実行して確認する」というサイクルで進めると、初心者でも挫折しにくくなります。
5. 【トラブル対策】よくあるつまずきポイントとエラー対処
マクロ作成でよくあるエラーと対処の考え方をまとめました。
| つまずきポイント | 主な原因 | 対処の考え方 |
|---|---|---|
| 「オブジェクトが設定されていません」エラー | swModel などのオブジェクトに何も入っていない | モデルを開いた状態でマクロを実行しているか確認する |
| マクロを実行しても何も起きない | 処理対象のファイルタイプが想定と違う | GetType で対象がパーツ/アセンブリ/図面のどれかを確認する |
| 記録したマクロが別のPCで動かない | ファイルパスがハードコーディングされている | 保存先パスを変数化するか、実行時に選択させる形に直す |
| VBAエディタでコードが赤字になる | 構文エラー(スペルミス・カッコの閉じ忘れなど) | 該当行を1文字ずつ見直す。似た変数名の打ち間違いも多い |
エラーが出たときは、原因究明を癖付けましょう。
「何行目で」「何が原因で」止まっているかを都度確認していくと、少しずつ自力で解決できる範囲が広がっていきます。
6. 【次の一手】自分で作るのが難しいときの選択肢
ここまでの手順で最初のマクロは作れるようになりますが、業務で使えるレベルまで作り込むには相応の学習時間が必要です。
「時間がない」「もっと複雑な処理を任せたい」という場合は、以下の2つの選択肢も検討してみてください。
選択肢①: Sugitama-Lab.配布のマクロを使う
Sugitama-Lab.では、設計現場で実用できるマクロを無料配布しています。
作り方を学びながら、まずは既存のマクロを実際に使ってみるのもおすすめです。コードの中身を読むことは、そのままVBA学習の教材にもなります。
- ExportMultiFormats
アセンブリ内の選択パーツをSTEP・PDF・DXF・STLなど複数形式へ一括エクスポート - ClickClickCheckDrawing
図面の検図作業をクリック操作だけで進められ、チェック済み箇所が色で分かる検図支援ツール - AssyCompare
2つのアセンブリを比較し、部品の追加・削除・個数変更をCSVでリストアップ - AssyFreeze
重いアセンブリの全パーツをワンクリックで固定・合致抑制し、動作を軽量化 - ModelViewOptimizer
RealViewやアンビエントオクルージョンなどの描画設定をボタン一つでオフにし、描画負荷を軽減 - DeepLTranslate
図面内の注記・寸法テキストをDeepL APIで自動翻訳し、日本語の下に英訳を追記 - SwToCura
モデルをワンクリックでSTL保存し、そのままUltiMaker Curaを自動起動
配布マクロをツールバーに登録する具体的な手順は、こちらの記事で画像付きで解説しています。
選択肢②: マクロ作成を代行してもらう
「自社の業務フローに合わせたオリジナルマクロが欲しいが、学習する時間が取れない」という場合は、Sugitama-Lab.の相談窓口からマクロ作成の個別相談を受け付けています。
現場ごとに異なる作業フローに合わせたマクロ作成について相談したい方は、以下のページから内容を確認してみてください。
選択肢③: AIを使ったマクロ開発
ここまで「マクロ記録→VBAエディタで手直し」という流れを紹介してきましたが、最近はChatGPTやGemini、ClaudeといったAIチャットにVBAコードを書かせる、あるいは手直しさせるという選択肢も現実的になってきました。
やり方は、AIのチャット画面で、自分のやりたいことを伝えるだけです。あとはAIが自動でコードを書いてくれます。
さすがに一発で完璧なコードを書いてくれるわけではありません。
ですが、エラーが出た箇所やどんなエラーが出たかを伝えると、エラーの原因を特定して、再度修正したコードを書いてくれます。
これを繰り返すと、思った通りに動くマクロが完成します。

AIを活用すれば、マクロ開発がめちゃくちゃ進みます。
AIを使ったマクロ開発については別記事にて解説します。
まとめ
SOLIDWORKSマクロの作り方について、基礎知識から実践的な作成手順、よくあるエラー対処までを解説しました。
- マクロはSOLIDWORKSの操作を自動化する小さなプログラム
- 「マクロ記録機能」を使って最初のマクロを作る
- VBAエディタで条件分岐や繰り返し処理を組み込めば、より実用的なマクロができる
- エラーが出たら、まず「何行目で」「何が原因か」を確認する
- AIを活用したり、既存マクロ、マクロ作成代行を活用して業務を効率化する

最初から完璧なマクロを目指す必要はありません。
まずは小さな操作の自動化から、少しずつ試してみてください。
次の一歩として、まずは配布マクロ一覧から気になるものを1つ試してみませんか。
「自社専用のマクロを作ってほしい」という方は、相談窓口からお気軽にご相談ください。
最後までお読みいただき、ありがとうございました。











VBAはExcelマクロでも使われている言語のため、Excelマクロを触ったことがある方は、とっつきやすいかもしれません。