概要 - 外部参照をアタッチ解除する(VBA/ActiveX)

外部参照定義をアタッチ解除して、外部参照を図面から完全に除去できます。

また、個々の外部参照インスタンスを削除することもできます。外部参照定義をアタッチ解除すると、その外部参照に関連付けられたすべての従属シンボルが削除されます。外部参照のすべてのインスタンスが図面から削除された場合、AutoCAD は次回図面が開かれたときに外部参照定義を除去します。

外部参照をアタッチ解除するには、Detach メソッドを使用します。ネストした外部参照をアタッチ解除することはできません。

外部参照定義をアタッチ解除する

次の例では、外部参照をいったんアタッチしてから、アタッチ解除します。この例では、Sample フォルダにある 3D House.dwg ファイルを使用します。このイメージが存在しない場合や、別のフォルダにある場合は、変数 PathName に有効なパスおよびファイル名を指定してください。

Sub Ch10_DetachingExternalReference()
 On Error GoTo ERRORHANDLER

 ' Define external reference to be inserted
 Dim xrefHome As AcadBlock
 Dim xrefInserted As AcadExternalReference
 Dim insertionPnt(0 To 2) As Double
 Dim PathName As String
 insertionPnt(0) = 1
 insertionPnt(1) = 1
 insertionPnt(2) = 0
 PathName = "c:/Program Files/Autodesk/AutoCAD release/sample/3D House.dwg"
 
 ' Add the external reference
 Set xrefInserted = ThisDrawing.ModelSpace. _
 AttachExternalReference(PathName, "XREF_IMAGE", _
 insertionPnt, 1, 1, 1, 0, False)
 ZoomAll
 MsgBox "The external reference is attached."
 
 ' Detach the external reference definition
 Dim name As String
 name = xrefInserted.name
 ThisDrawing.Blocks.Item(name).Detach
 MsgBox "The external reference is detached."
 Exit Sub
ERRORHANDLER:
 MsgBox Err.Description
End Sub