【入門編】【初心者向け】AutoCAD VBAで新規図面をテンプレート(DWT)から作成する基本 – AutoCAD VBA解析バイブル

スポンサーリンク

【AutoCAD VBA】テンプレートから図面を自動生成する――「マクロの記録」を卒業する第一歩

こんにちは。AutoCADの自動化の世界へようこそ。

「毎日同じレイヤーを作って、同じ設定をしてから描き始める……この繰り返し、なんとかならないのか?」
そう思った瞬間が、あなたが「ただのオペレーター」から「エンジニア」へと進化する分岐点です。

今回は、AutoCAD VBAを使って「特定のテンプレート(.dwt)から新規図面を自動生成する」という、自動化の基本にして最強の武器となるスキルを伝授します。これさえ押さえれば、図面の品質は一定になり、あなたの作業時間は劇的に削減されます。

—

1. なぜ「テンプレート」からの作成が重要なのか?

手動で新規図面を開くと、AutoCADのデフォルト設定が適用されますよね。でも、会社やプロジェクトには「この画層構成」「この寸法スタイル」「この尺度設定」という独自のルールがあるはずです。

VBAでこれを自動化すると、以下のメリットがあります。

  • ヒューマンエラーの根絶: レイヤーの作成忘れや、線種設定のミスが0になります。
  • 一貫性の担保: 誰が実行しても同じ環境で図面が立ち上がります。
  • 時短の極み: 起動後の「お決まりの設定作業」が0.1秒で終わります。

—

2. 【核心】新規図面作成のコードを解読する

では、早速コードを見てみましょう。VBAにおいて図面を扱うには、`Documents`コレクションを操作するのが鉄則です。

Sub CreateNewDrawingFromTemplate()
‘ AutoCADの現在のドキュメント(図面)を扱うための変数
Dim newDoc As AcadDocument
Dim templatePath As String

‘ テンプレートファイルのフルパスを指定してください
‘ ※環境に合わせて書き換えてください(例: “C:\Templates\MyStandard.dwt”)
templatePath = “C:\AutoCAD_Templates\Standard_Project.dwt”

‘ エラーハンドリング(ファイルが見つからない場合に備える)
On Error Resume Next

‘ テンプレートから新規図面を作成
‘ Documents.Addメソッドの引数にパスを渡すと、それを元に生成されます
Set newDoc = ThisDrawing.Application.Documents.Add(templatePath)

‘ エラー確認
If Err.Number <> 0 Then
MsgBox “テンプレートが見つかりません。パスを確認してください。” & vbCrLf & _
“指定パス: ” & templatePath, vbCritical
Exit Sub
End If

‘ 作成した図面をアクティブにする(必須の儀式です)
newDoc.Activate

MsgBox “テンプレートから新規図面を作成しました!”, vbInformation
End Sub

コードのここがポイント!

1. `Documents.Add`: これが心臓部です。引数に何も渡さないと空の図面ができますが、パスを渡すことで「テンプレートのクローン」が生成されます。
2. `On Error Resume Next`: 実務においてパス指定ミスはつきものです。プログラムがクラッシュしないよう、あえてエラーを無視し、直後に`If Err.Number`でチェックするのがプロの作法です。
3. `Activate`: 図面を作成しただけでは、AutoCADの画面が切り替わらないことがあります。確実に操作対象にするために、明示的に`Activate`を呼ぶのが安定稼働のコツです。

—

3. 初心者が陥りやすい「3つの罠」

現場でよくある失敗事例を共有しておきます。これを知っているだけで、デバッグの時間は半分になります。

① テンプレートのパスが「相対パス」になっている

コード内に `.\template.dwt` のように書くと、AutoCADの「作業フォルダ(起動場所)」に依存してしまいます。必ずフルパス(C:\~から始まる絶対パス)で指定してください。

② テンプレートファイルが「読み取り専用」や「別プロセスで開かれている」

テンプレートファイルが別のPCで開かれていたり、OSの設定でロックされているとエラーになります。テンプレートはネットワーク上の共有ドライブに置くのが一般的ですが、読み込み権限には注意しましょう。

③ コレクションのインデックスを勘違いする

AutoCADは複数の図面を同時に開けます。コードを書く際、`ThisDrawing`(現在実行中の図面)と、新しく作った`newDoc`を混同しないようにしてください。「図面を作ったはずなのに、古い図面に線を描いてしまった…」というミスを防ぐため、常に変数を経由して対象を明示しましょう。

—

4. さあ、次のステップへ

このコードが動いたあなたは、もう「手作業で設定を繰り返す人」ではありません。

次のステップとしては、「作成した図面にタイトルブロックを自動挿入する」や「プロジェクト名などの属性情報を自動で書き込む」といった機能を追加していくと、さらに業務が楽になります。

プログラミングは「書いた分だけ確実に楽ができる」魔法です。まずはこのコードをコピーして、あなたのPCのテンプレートパスを書き換えるところから始めてみてください。

もしエラーで止まってしまったら、それはあなたが成長している証拠です。そのエラーこそが、AutoCADの深い理解への道しるべなのですから。

応援しています。また次の技術でお会いしましょう!

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