【AutoCAD VBAの極意】テンプレート(.dwt)をコードで支配せよ!標準化への最短ルート
こんにちは。AutoCADの自動化の世界へようこそ。
日々、手作業で「画層を作って、寸法スタイルを調整して…」と繰り返していませんか?それはエンジニアとしては「修行」ですが、仕事としては「損失」です。
今日は、AutoCAD VBAを使って「社内標準のテンプレート(.dwt)をプログラムで自動生成する」という、自動化の第一歩にして最強の武器となるテクニックを伝授します。
—
1. なぜ「テンプレート生成」を自動化するのか?
多くの人が「図面テンプレートは手動で作成し、それをコピーして使うもの」だと思っています。しかし、「コードで生成する」ことには決定的なメリットがあります。
- 完全な標準化: 人の手による設定ミスを排除できる。
- 仕様変更への即応: 寸法スタイルや線種の定義が更新された際、一括で新しいテンプレートを再生成できる。
- 「何が設定されているか」が可視化される: コード自体が仕様書になる。
さあ、マクロの記録という「箱庭」を飛び出して、AutoCADのオブジェクトモデルという「広大な世界」へ踏み出しましょう。
—
2. 理解すべき二つの巨人:AcadApplicationとAcadDocument
AutoCAD VBAを掌握するには、この二つのオブジェクトの役割を理解する必要があります。
- AcadApplication: AutoCADという「アプリそのもの」。窓口です。
- AcadDocument: 開いている(あるいは作成した)「図面ファイル」。画層やスタイルが宿る場所です。
これらを操るための「魔法の呪文(コード)」を見ていきましょう。
—
3. テンプレート自動生成の実装コード
以下のコードは、新規図面を作成し、そこに「標準画層」を設定して、テンプレートとして保存する一連の流れです。
Sub GenerateStandardTemplate()
Dim acadApp As AcadApplication
Dim newDoc As AcadDocument
Dim layerObj As AcadLayer
‘ 1. AutoCADアプリケーションを呼び出す
Set acadApp = ThisDrawing.Application
‘ 2. 新規図面を作成(テンプレートなしの空白図面)
Set newDoc = acadApp.Documents.Add(“”)
‘ 3. 図面の設定をカスタマイズ(例:標準画層の作成)
‘ エラー回避のため、既に存在するかチェックするのがプロの作法
On Error Resume Next
Set layerObj = newDoc.Layers.Add(“01_外形線”)
If Err.Number <> 0 Then
Set layerObj = newDoc.Layers.Item(“01_外形線”)
Err.Clear
End If
layerObj.Color = acRed ‘ 赤色に設定
On Error GoTo 0
‘ 4. テンプレートとして保存(SaveAsメソッド)
‘ acTemplate はテンプレートファイル形式を指定する定数
‘ フルパスで保存先を指定してください
Dim savePath As String
savePath = “C:\CAD_Standards\MyCompany_Standard.dwt”
newDoc.SaveAs savePath, acTemplate
MsgBox “テンプレートの生成が完了しました!”, vbInformation
End Sub
コードの重要ポイント解説
- `Documents.Add(“”)`: 引数を空にすることで、真っ新な図面を生成します。ここにパスを入れれば既存ファイルをベースにできます。
- `On Error Resume Next`: 非常に重要です。画層作成時に「既に存在する場合」エラーで止まらないようにするための、現場で必須のテクニックです。
- `SaveAs`メソッドの第2引数: ここで `acTemplate` を指定することで、ただのDWGではなく「テンプレートファイル」として保存されます。
—
4. 初心者が陥りやすい「落とし穴」
その1:オブジェクトの寿命(ライフサイクル)
`Set newDoc = …` で作成したオブジェクトは、マクロが終わってもメモリに残り続けます。必要に応じて `newDoc.Close` を呼び出し、メモリを解放する習慣をつけましょう。
その2:アクティブドキュメントの罠
`ThisDrawing` は「コードを実行している図面」を指します。新規作成した図面に対して操作を行う際は、必ず変数(`newDoc`)経由で操作してください。さもないと、意図しない図面を書き換えてしまう大事故につながります。
—
最後に:自動化の先にあるもの
このコードが動いた瞬間、あなたは「CADを操作する人」から「CADを管理するエンジニア」に進化しました。
テンプレート生成をクリアしたら、次は「寸法スタイルの自動設定」や「タイトルブロックの自動挿入」に挑戦してみてください。これらを組み合わせれば、「起動するだけで今日使う環境が整う」という究極のデスク環境を作ることができます。
何か分からないことがあれば、いつでも質問してください。共に、AutoCADの退屈な作業をこの世から消し去りましょう!
