【入門編】図面プロパティ(カスタムプロパティ含む)の自動設定・取得!AcadDocumentのSummaryInfo – AutoCAD VBA解析バイブル

スポンサーリンク

AutoCAD自動化の世界へようこそ。
「マクロの記録」という安全な港を離れ、VBAという大海原へ漕ぎ出す決意をしたあなたを、私は心から歓迎します。

今日は、図面管理の要である「図面プロパティ(SummaryInfo)」を完全に掌握する術を伝授しましょう。これを知るだけで、図面の管理コストは劇的に下がり、あなたの作成した図面は「管理された資産」へと昇華します。

1. なぜ「SummaryInfo」を掌握するのか?

AutoCADの図面には、ファイル名とは別に「タイトル」「作成者」「コメント」といったメタデータが埋め込まれています。これらは [ファイル] > [図面プロパティ] から確認できる情報ですが、手作業で入力するのは時間の無駄ですし、何より「ヒューマンエラー」の温床です。

VBAを使えば、「図面を開いた瞬間に作成者と日付を自動スタンプする」といった芸当が可能です。これこそが、脱・初心者への第一歩です。

2. AcadDocument.SummaryInfo との対話

AutoCAD VBAにおいて、図面情報は `AcadDocument` オブジェクトが保持しています。その中でも、プロパティを司るのが `SummaryInfo` オブジェクトです。

まずは、現在の図面の情報を取得するコードを見てみましょう。

‘ 現在の図面情報をイミディエイトウィンドウに表示する
Sub GetDrawingSummary()
Dim doc As AcadDocument
Dim info As AcadSummaryInfo

Set doc = ThisDrawing
‘ SummaryInfoオブジェクトを取得
Set info = doc.SummaryInfo

‘ 各プロパティにアクセス
Debug.Print “タイトル: ” & info.Title
Debug.Print “作成者: ” & info.Author
Debug.Print “カスタムプロパティ(プロジェクト名): ” & info.GetCustomByKey(“ProjectName”)
End Sub

ここがポイント!

  • `ThisDrawing`: VBAから現在開いている図面を指す最も便利なキーワードです。
  • `GetCustomByKey`: 標準プロパティだけでなく、自分で定義した「カスタムプロパティ」もキー名で取得できます。

3. 実践:図面プロパティを一括設定する

次に、図面をテンプレート化する際に役立つ「自動設定」コードです。業務でよく使う項目をまとめて更新する関数を作成します。

Sub SetDrawingSummary()
Dim info As AcadSummaryInfo
Set info = ThisDrawing.SummaryInfo

‘ 標準プロパティの設定
info.Title = “設計図面_詳細構造”
info.Author = “設計部_山田太郎”
info.Comments = “2023年度版 自動生成プロパティ”

‘ カスタムプロパティの設定(存在しないキーなら追加、存在すれば上書き)
‘ ※カスタムプロパティはキーが存在するか確認してから設定するのが安全です
On Error Resume Next ‘ エラー回避の小技
info.AddCustomInfo “ProjectID”, “PJ-2023-A01”
info.SetCustomByKey “ProjectID”, “PJ-2023-A01”
On Error GoTo 0

MsgBox “図面プロパティの更新が完了しました!”
End Sub

4. 初学者が陥りやすい「落とし穴」

現場のエンジニアとして、皆さんに必ず覚えておいてほしい注意点が2つあります。

① オブジェクトのライフサイクル

`Set info = ThisDrawing.SummaryInfo` と書きましたが、これはあくまで「設定値の写し」を持っているわけではありません。`info` オブジェクトを通じてプロパティを変更すると、即座にその図面オブジェクトのメモリ上で値が更新されます。 最後に `ThisDrawing.Save` を忘れないようにしてくださいね。

② カスタムプロパティの存在確認

`AddCustomInfo` を実行する際、すでに同じキーが存在すると実行時エラーになります。
現場のコードでは、必ず `On Error Resume Next` を使うか、ループ処理でキーの存在を確認する「防衛的なプログラミング」を心がけましょう。

5. まとめ:ここをクリアすれば「自動化の達人」

今回解説した `SummaryInfo` の操作は、AutoCAD自動化の「基礎体力」です。

1. 取得する: `SummaryInfo` を呼び出す。
2. 設定する: 標準項目と `AddCustomInfo` を使い分ける。
3. 保存する: `Save` を忘れずに。

これだけで、図面管理の運用ルールをプログラムで強制することができます。手作業でプロパティを打つ日々とは今日でおさらばです。

次は「図面を閉じる際に、プロパティが空欄だったら警告を出す」といったイベント駆動型のマクロに挑戦してみると、さらに世界が広がりますよ。

分からないことがあれば、いつでも聞きに来てください。あなたの自動化への挑戦を、私は全力で応援しています。

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