Hallo miteinander,
weiss jemand wie ich per VBA Blöcke auslesen/erkennen kann, die zwar in der Zeichnung gelöscht sind, aber eben noch unter Dienstprogramme -> Bereinigen stehen. Oder andersherum, wie kann ich feststellen ob ein Block wirklich noch in der Zeichnung gezeichnet ist und nicht schon gelöscht wurde und deshalb nur noch unter Dienstprogramme -> Bereinigen steht.
Mein Programm soll einen Block erkennen und Falls dieser in der Zeichnung ist soll er keinen neuen Block mit Attributen in die Zeichnung einfügen, sondern soll die Attribute des in der Zeichnung vorhandenen ändern.
Im folgenden Programm werden die Blöcke ausgelesen und in eine List-Box geschrieben leider eben auch wenn der Block gar nicht in der Zeichnung gezeichnet ist. Wie kann ich nun die Blöcke erkennen die nur in der Zeichnung sind???
Private Sub CommandButton7_Click()
Set ACADAPP = GetObject(, "Autocad.Application")
Set ACADDOC = ACADAPP.ActiveDocument
AppActivate ACADAPP.Caption
Dim blockname As String
Dim a As Integer
Dim blocktotal As Integer
ListBox1.Clear
blocktotal = ACADDOC.Blocks.Count
ReDim allenamen(blocktotal) As String
For a = 0 To blocktotal - 1
blockname = ACADDOC.Blocks.Item(a).Name
allenamen(a) = blockname
If blockname = "all1_a5" Then '"Trage Attribute ein"
If Not Mid$(blockname, 1, 1) = "*" Then ListBox1.AddItem blockname
Next a
End Sub
Mein Programm (Beispiel) läuft von Excel-VBA aus. Mir Hilft aber auch ein Code unter Autocad-VBA weiter.
Ich hoffe ich bekomme eine Antwort.
Vielen Dank im voraus.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP