【入門編】【SolidWorks VBA超入門】VBEの初期設定とマクロセキュリティ解除から始める最初のデバッグ – SolidWorks VBA解析バイブル

スポンサーリンク

【SolidWorks VBA超入門】VBEの初期設定とマクロセキュリティ解除から始める最初のデバッグ

こんにちは!SolidWorks自動化の世界へようこそ。
日々、同じような形状のモデリングや、図面のプロパティ入力、CSVからのデータ流し込みにうんざりしていませんか?「この退屈な作業、全部ボタン一つで終わらせられたらなぁ……」と思ったことがあるなら、VBA(Visual Basic for Applications)の習得は、あなたのエンジニアライフを劇的に変える最強の武器になります。

今回は、記念すべき第1歩として、SolidWorksでマクロ開発を始めるための「開発環境の構築(VBEの初期設定)」と「セキュリティの壁の突破」、そして「最初のデバッグ」までを、優しく、そして本質的に解説していきます。

ここをクリアすれば、SolidWorks VBAの土台はバッチリです。一緒に進めていきましょう!

—

1. なぜSolidWorks VBAなのか?(マクロの記録からの脱却)

「マクロの記録」ボタンを押して、手作業をVBAコードに変換したことがある方も多いでしょう。しかし、自動生成されたコードは冗長で、少しでもモデルの構造が変わるとすぐにエラーを起こしてしまいます。

実務で使える堅牢なマクロを書くためには、SolidWorksの「API(Application Programming Interface)」の構造を理解し、VBE(Visual Basic Editor)という専用の裏画面を自在に操る必要があります。

まずは、その開発ステージに立つための準備を整えましょう。

—

2. VBEの扉を開く:画面構成と必須の初期設定

SolidWorksを起動し、適当な部品(Part)ファイルを開いてください。
上部メニューの [ツール] > [マクロ] > [新規作成] をクリックすると、見慣れない白い画面が立ち上がります。これがVBE(Visual Basic Editor)です。

最初の儀式:コードモジュールの挿入

VBEが開いたら、以下の手順で「コードを書くキャンバス」を用意します。

1. メニューバーの [挿入] > [標準モジュール] をクリック。
2. 白い大きな入力画面(Module1)が表示されます。

これだけは変えておけ!「変数の宣言を強制する」設定

プログラミング初学者が必ずハマる罠が「タイポ(入力ミス)によるバグ」です。これを防ぐために、VBEの超重要設定を変更します。

  • VBEのメニューバーから [ツール] > [オプション] を開く。
  • [編集] タブにある [変数の宣言を強制する (Require Variable Declaration)] にチェックを入れ、[OK] を押す。

【知的な先輩の解説】
これにチェックを入れると、今後新しく作るモジュールの最上部に自動で `Option Explicit` という呪文が挿入されます。これにより、宣言していない変数に適当な値を代入しようとした際、SolidWorksが即座にエラーで教えてくれるようになります。バグの9割をこれで未然に防げます。

—

3. セキュリティの壁を突破する:「信頼できるフォルダ」の登録

「よし、コードを書くぞ!」と意気込んでマクロを実行しようとした矢先、SolidWorksのセキュリティ機能が邪魔をして、マクロがブロックされることがあります。
社内ニート……ではなく、セキュリティポリシーが厳しいPC環境では必須の設定を行いましょう。

マクロの警告を防ぐ手順

1. SolidWorksのメイン画面に戻り、歯車アイコンの [システムオプション] を開く。
2. 左側ツリーから [システムオプション] > [ファイルの位置] を選択する。
3. ドロップダウンから [マクロ] を選択する。
4. 自分が作成したマクロ(`.swp` や `.vb`)を保存する専用フォルダのパスを追加(または確認)する。
5. 次に、メインメニューの [ツール] > [マクロ] > [セキュリティ] を開き、「信頼できるフォルダ」にそのフォルダを登録する。

これで、自作のマクロがセキュリティに弾かれることなく、スムーズに実行できるようになります。

—

4. 運命の第一歩:SolidWorksと対話する最初のコード

それでは、準備運動として「現在開いているアクティブなドキュメントのファイル名を取得し、画面にポップアップ表示する」という、極めて実用的な最初のプログラムを書いてみましょう。

以下のコードを、先ほど作成した「標準モジュール(Module1)」に丸ごとコピー&ペーストしてください。

Option Explicit

‘ ==============================================================================
‘ 【テーマ】SolidWorks VBA 最初のプログラム
‘ 【概要】現在開いているモデルのファイル名を取得し、メッセージボックスで表示する
‘ ==============================================================================
Sub ShowActiveDocumentName()

‘ 1. アプリケーション(SolidWorks本体)のオブジェクトを定義
Dim swApp As SldWorks.SldWorks

‘ 2. アクティブなドキュメント(今開いている部品やアセンブリ)のオブジェクトを定義
Dim swModel As SldWorks.ModelDoc2

‘ 3. 変数に現在のSolidWorksのインスタンスをバインドする
Set swApp = Application.SldWorks

‘もしSolidWorksが起動していない、あるいはドキュメントが開かれていない場合のガード処理
If swApp Is Nothing Then
MsgBox “SolidWorksが正しく認識されていません。”, vbCritical, “エラー”
Exit Sub
End If

‘ 現在アクティブなドキュメントを取得
Set swModel = swApp.ActiveDoc

‘ 4. ドキュメントが開かれているかチェック
If swModel Is Nothing Then
MsgBox “現在開かれているファイルがありません。部品や図面を開いてから実行してください。”, vbExclamation, “警告”
Exit Sub
End If

‘ 5. ファイル名を取得してユーザーに通知する
Dim docTitle As String
docTitle = swModel.GetTitle()

MsgBox “おめでとうございます!” & vbCrLf & _
“現在アクティブなファイル名は:【 ” & docTitle & ” 】 です。”, _
vbInformation, “SolidWorks VBA 初成功”

End Sub

—

5. デバッグの基本:コードを一行ずつ実行してみよう(F8の魔法)

コードを貼り付けたら、いよいよ実行とデバッグの体験です。

1. キーボードの [F5] キー を押すと、マクロが一気に実行され、メッセージボックスが表示されます。
2. ここからがプロのテクニックです。コードの中にカーソルを置いた状態で、[F8] キー を押してみてください。

ステップ実行(F8)のすすめ

[F8] を押すと、コードが1行ずつハイライトされ、プログラムがどのように流れているかを肉眼で追うことができます。

  • 変数 `swApp` に何が入ったか?
  • `swModel` が正しく取得できているか?

VBEの下部にある「ローカル ウィンドウ」([表示] > [ローカル ウィンドウ] で表示可能)を開いておくと、変数の値がリアルタイムで変化していく様子が手に取るようにわかります。「なぜエラーが出るのか分からない」ときは、必ず [F8] で一行ずつ追う(ステップ実行する)。これが、優れた自動化エンジニアへの唯一にして最短の道です。

—

まとめ

お疲れ様でした!今回は以下のスキルを手に入れました。

  • VBEの画面構成と「変数の宣言の強制(Option Explicit)」の重要性
  • マクロセキュリティと「信頼できるフォルダ」の設定
  • `SldWorks` と `ModelDoc2` を使った最初のオブジェクト操作
  • バグを駆逐する [F8] ステップ実行の極意

ここをクリアしたあなたなら、もう「マクロの記録」に頼るだけの初心者ではありません。
次回からは、さらに実践的なフィーチャー作成や、図面自動化のAPIへと踏み込んでいきます。

「ここをもっと深く知りたい」「こんな自動化はできる?」といった疑問があれば、いつでも先輩エンジニアに聞いてくださいね。あなたの自動化ライフを心から応援しています!

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