図面プロパティの取得と編集|AutoCAD VBAマクロの作成方法

AutoCAD VBAで図面のプロパティの取得と編集を行うにはSummaryInfoオブジェクトを利用する必要があります。SummaryInfoオブジェクトはタイトルや表題のようなデフォルトのプロパティだけでなく、カスタムプロパティの追加や取得を行うメソッドも用意されています。本ページではこのSummaryInfoオブジェクトを使って図面プロパティの取得、編集をする方法を解説していきます。

本ページで学べる内容は以下のとおりです。

SummaryInfoオブジェクトについて

 図面のプロパティを取得 / 変更する方法

 カスタムプロパティを追加する取得方法
 カスタムプロパティを取得 / 変更する方法

SummaryInfoオブジェクト

AutoCAD VBAで画層を操作するにはSummaryInfoオブジェクトを使用します。
SummaryInfoオブジェクトはDocumentオブジェクトのプロパティから取得可能です。このときのDocumentオブジェクトが示すドキュメントの図面プロパティを取得することができます。

 
 プロパティ 

図面のプロパティの情報を取得/変更するには、SummaryInfoオブジェクトのプロパティにアクセスする必要があります。下表はSummaryInfoオブジェクトが持つプロパティで、これらの値を取得/変更することで、図面プロパティの値を取得/変更することができます。

プロパティ名 内容
Author  作成者を取得/設定する
Comments コメントを取得/設定する
HyperlinkBase ハイパーリンクの基点を取得/設定する
Keywords キーワードを取得/設定する
LastSavedBy 最終保存者を取得/設定する
RevisionNumber 改訂番号を取得/設定する
Subject 表題を取得/設定する
Title タイトルを取得/設定する

  

図面プロパティの編集

SummaryInfoオブジェクトのプロパティを変更して図面プロパティの設定を行うためには下記のようなコードを記載します。基本的にはプロパティの値を直接変更すれば設定ができますし、値を取得すれば現在の設定を確認することができます。これらプロパティはすべて文字列(String型)です。

 

図面カスタムプロパティの編集

カスタムプロパティの追加と削除

図面のカスタムプロパティを追加するにはSummaryInfoオブジェクトのAddCustomInfoメソッド、削除するにはRemoveCustomByIndexメソッドもしくはRemoveCustomByKeyメソッドを使います。

AddCustomInfoメソッドは引数に「キー(名前), 値」を順に入力することで指定の値を持ったプロパティを追加することができます。カスタムプロパティ内でキーは重複することができないため、既に存在するキーでプロパティを追加しようとするとエラーが発生するので注意が必要です。

カスタムプロパティをインデックス指定で削除する場合は、RemoveCustomByIndexメソッドの引数にインデックスを入力することで指定のプロパティを削除することができます。インデックスは0始まりのため、1番初めのプロパティを削除する場合は1ではなく0を入力します。またNumCustomInfoメソッドで現在のカスタムプロパティの個数を取得することができるため、ループで一括削除や最新で追加したプロパティの削除を行うことも可能です。

カスタムプロパティをキー(名前)指定で削除する場合は、RemoveCustomByKeyメソッドの引数にキーを入力することで指定のプロパティを削除することができます。
 

カスタムプロパティの取得

カスタムプロパティを取得するにはGetCustomByIndexメソッドもしくはGetCustomByKeyメソッドのいずれかを使います。名前の通りで取得対象のカスタムプロパティの指定方法が違うだけです。

プロパティのキーと名前のいずれもを取得したい場合はGetCustomByIndexメソッドを使います。インデックスを指定することで対象のキーと値を同時に取得することができます。メソッドとしての戻り値はなく、引数として入力した文字列型の変数(sKey, sValue)の中身が取得した値に置き換わります。

指定のキーの値を取得したい場合はGetCustomByKeyメソッドを使います。これも上記メソッドと同じで戻り値はなく、引数として入力した文字列型の変数の中身の取得した値が上書きされます。
 

カスタムプロパティの変更

カスタムプロパティの値を変更するにはSetCustomByIndexメソッドもしくはSetCustomByKeyメソッドを使います。前項の取得のメソッドと同じく設定用のメソッドも2つ用意されています。

プロパティのキーと名前のいずれもを変更したい場合はSetCustomByIndexメソッドを使います。インデックス指定でキーと値の2つの情報を同時に変更することができます。

指定のキーの値を変更したい場合はSetCustomByKeyメソッドを使います。

 

まとめ

今回の内容をまとめると以下のとおりです。

 図面プロパティの編集はSummaryInfoオブジェクトを使う
SummaryInfoオブジェクトはThisDrawing.SummaryInfoで取得可能

SummaryInfoオブジェクトのプロパティを使うことで図面プロパティの取得と設定が可能
SummaryInfoオブジェクトのメソッドを使うことでカスタムプロパティの取得と設定が可能

本ページでは図面のプロパティ情報を取得/変更する方法についての内容でした。
プロパティの名の通り、SummaryInfoオブジェクトのプロパティからカスタムプロパティ以外の操作はすべてできます。カスタムプロパティについてもメソッドが用意されており、プロパティの追加や値の取得/変更などが可能になっています。

VBAマクロの使い方として、カスタムプロパティに図面を識別できる何らかの情報を追加しておき、処理が終わった後にそのプロパティを削除するというような処理をするというような使い方もできます。
 

メインページへ戻る
 

 関連書籍

 Autodesk公式リンク

参考:SummaryInfo オブジェクト(ActiveX)

AutoCAD, VBA

Posted by Lic