【入門編】【実務中級者向け】「名前削除(Purge)」と「監査(Audit)」を組み合わせた「超軽量化セーブ」マクロの構築 – AutoCAD VBA解析バイブル

スポンサーリンク

AutoCADを「軽く」使いこなせ!最強の最適化セーブ・マクロ術

こんにちは。現場の「重い図面」に頭を抱えたことはありませんか?
図面を開くたびにプログレスバーがゆっくりと進み、保存するだけで数秒間固まる……。それは、図面のデータベースに「ゴミ」が蓄積している証拠です。

AutoCAD VBAをマスターするということは、単に自動化することではありません。AutoCADの内部データベースを理解し、その健康状態を最適に保つことです。

今回は、実務で即戦力となる「名前削除(Purge)」と「監査(Audit)」を組み合わせた、究極の「超軽量化セーブ・マクロ」を伝授します。

—

1. なぜ「そのまま保存」してはいけないのか?

AutoCADの図面(DWG)は、長期間使っていると、使われていない画層、不要なブロック定義、さらには破損しかけたデータなどが蓄積されます。これがファイル肥大化の主犯です。

  • Purge(名前削除): 参照されていないオブジェクトをデータベースから物理的に排除する「断捨離」です。
  • Audit(監査): データベースの構造的な不整合(リンク切れ等)を修正する「健康診断」です。

この2つを自動で行うことで、図面は常にスリムで堅牢な状態を維持できます。

—

2. 超軽量化セーブ・マクロのコード

このコードは、現在アクティブな図面に対して、強制的な最適化と保存を行います。VBAエディタ(`Alt + F11`)を開き、標準モジュールに貼り付けてください。

Public Sub OptimizedSave()
‘ エラーハンドリングを組み込み、処理の安全性を確保
On Error GoTo ErrorHandler

Dim doc As AcadDocument
Set doc = ThisDrawing

‘ 1. 監査(Audit)を実行してデータベースを修復
‘ 引数Trueは、検出されたエラーを自動的に修正することを意味します
doc.AuditInfo True

‘ 2. 名前削除(Purge)をループで実行
‘ Purgeは一度では全て消えない場合があるため、完全にゼロになるまで回すのがコツ
Dim i As Integer
Do
‘ 未使用のブロック、画層、線種などを削除
‘ 0は全て削除、Falseはネストされた項目も削除する設定
doc.PurgeAll
i = i + 1
Loop While i < 3 ' 念のため3回ループさせて徹底的にクリーニング ' 3. 最適化された状態で保存 doc.Save MsgBox "最適化セーブが完了しました!図面はスリムで健全です。", vbInformation Exit Sub ErrorHandler: MsgBox "エラーが発生しました: " & Err.Description, vbCritical End Sub ---

3. コード解説:プロの視点

この短いコードには、現場で生き残るための「こだわり」が詰まっています。

  • `AuditInfo True` の重要性:

この引数 `True` を忘れると、監査結果がテキストで出力されるだけで、実際には何も修復されません。「修正」まで行うのがプロの自動化です。

  • `Purge` のループ処理:

実は、Purgeは1回実行しただけでは、ネストされた(他のオブジェクトに依存していた)ゴミまで消しきれないことが多々あります。「3回回す」という泥臭い実装ですが、これが最も確実に図面を軽くする「経験則に基づく解」です。

  • `On Error GoTo`:

AutoCADの操作は、時として図面の破損状況によって予期せぬエラーを起こします。マクロがクラッシュしてAutoCADごと落ちるのを防ぐための防波堤です。

—

4. 陥りやすいエラーと対策

初学者がよくやるミスは、「コマンドラインに直接コマンドを送りすぎて処理が追いつかない」ことです。

  • ミス: `SendCommand` を多用して、コマンドの終了を待たずに次の行へ進んでしまう。
  • 対策: 今回のように、できるだけAutoCADのAPI(`AuditInfo`や`PurgeAll`など)を直接叩くようにしましょう。APIを使えば、コマンドの完了を確実に待ち受けてから次の処理へ進むため、安定性が劇的に向上します。

—

次のステップへ

このマクロをツールバーやリボンに登録しておけば、Ctrl+S(保存)の代わりにこのボタンを押す癖がつきます。それだけで、あなたの図面ライフは劇的に快適になります。

AutoCAD VBAは、単なる「作業の代行者」ではなく、あなたの図面を守る「門番」です。この基礎をクリアできれば、次は「図面を開いた瞬間に自動でプロパティをチェックする」といった高度な自動化の世界が待っています。

何か詰まったら、いつでも聞いてください。焦らず、一歩ずつマスターしていきましょう。応援しています!

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