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` を忘れずに。
これだけで、図面管理の運用ルールをプログラムで強制することができます。手作業でプロパティを打つ日々とは今日でおさらばです。
次は「図面を閉じる際に、プロパティが空欄だったら警告を出す」といったイベント駆動型のマクロに挑戦してみると、さらに世界が広がりますよ。
分からないことがあれば、いつでも聞きに来てください。あなたの自動化への挑戦を、私は全力で応援しています。
