概要 - AutoCAD が画層設定を保存する方法(VBA/ActiveX)

AutoCAD は、画層設定情報を図面の Layers コレクションの拡張ディクショナリに保存します。

最初に画層設定を図面に保存したとき、AutoCAD は次のことを行います。

図面の別の画層設定を保存するたびに、AutoCAD は保存された設定を記述する別の XRecord オブジェクトを作成し、その XRecord を ACAD_LAYERSTATE ディクショナリに追加します。次の図に処理を示します。



ActiveX を使用して画層設定しているときに、XRecord を読み出してはいけません。画層設定にアクセスするには、LayerStateManager オブジェクトの関数を使用します。

図面に保存した画層設定を一覧表示する

画層設定が現在の図面に保存されている場合、次のコードはすべての画層設定の名前を一覧表示します。

Sub Ch4_ListStates()
  On Error Resume Next

  Dim oLSMDict As AcadDictionary
  Dim XRec As Object
  Dim layerstateNames As String
  layerstateNames = ""

  ' Get the ACAD_LAYERSTATES dictionary, which is in the
  ' extension dictionary in the Layers object.
  Set oLSMDict = ThisDrawing.Layers.GetExtensionDictionary.Item("ACAD_LAYERSTATES")

  ' List the name of each saved layer setting. Settings are
  ' stored as XRecords in the dictionary.
  For Each XRec In oLSMDict
   layerstateNames = layerstateNames + XRec.Name + vbCrLf
  Next XRec
  MsgBox "The saved layer settings in this drawing are: " + vbCrLf + layerstateNames
End Sub