私はこれを使用して別の外部DWGファイルを挿入しています:これは外部のブロックとして挿入されたので、私は私の図面にバインドされAutoCADの2011 VBAや外部参照
Set xrefInserted = ThisDrawing.ModelSpace.AttachExternalReference(refDwgName, refDwgName, insertionPnt, 1, 1, 1, 0, False)
xrefInserted.Update
を:
For Each tempBlock In ThisDrawing.Blocks
If tempBlock.IsXRef Then
If (InStr(1, UCase(tempBlock.name), "MAJ_MATRICE", vbTextCompare)) Then
tempBlock.Bind (False)
Exit For
End If
End If
Next
今、私はそれを爆発させたい、まずAcadBlockは、AcadBlockReferenceだけを持ち、メソッドを爆発させていないようだ。
は、だから私は、参照を探します
Dim ent As AcadEntity
Dim blockRefObj As AcadBlockReference
For Each ent In ThisDrawing.ModelSpace
If TypeOf ent Is AcadBlockReference Then
If (InStr(1, UCase(ent.name), "MAJ_MATRICE", vbTextCompare)) Then
Set blockRefObj = ent
blockRefObj.Explode
Exit For
End If
End If
Next
問題は、それが "有効ではありません-2145386494" を私に語っ
が失敗した
blockRefObj.Explodeです。
コードをデバッグしましたが、AcadBlockReferenceがまだAcadExternalReferenceタイプで、外部参照を破棄することができないため、この問題を認識しました。
図面に戻って(関数呼び出しが終了した)コードを再実行し、AcadBlockReferenceを探すと、AcadBlockReferenceタイプになり、正しく爆発することができます。
私は、同じ関数内でそれをバインドするのと同じ実行で行うことはできないようです。
** blockRefObj **および** ent **のDimステートメントはどこですか? –
Ok宣言を追加しました – Enriquev
Bind(True)で試しましたか? (ちょうどデバッグする) –