Тема: VB и SelectionSets
При переборе элементов в SelectionSets на VB наблюдается значительное замедление работы программы. Тот же код на VBA работает без проблем.
Вот этот код:
Private Function BracketPosDelete()
Dim Element As Object
Dim BracketPos As Integer
Dim text As AcadText
Dim BracketName As String
Dim ssetObj As AcadSelectionSet
Dim mode As Integer
Dim gpCode(0) As Integer
Dim dataValue(0) As Variant
Dim groupCode As Variant, dataCode As Variant
BracketName = "B"
Set ssetObj = ThisDrawing.SelectionSets.Add("DeletePosBracket_SelSet")
mode = acSelectionSetAll
gpCode(0) = 0
dataValue(0) = "Text"
groupCode = gpCode
dataCode = dataValue
ssetObj.Select mode, groupCode, dataCode
If (ssetObj.Count > 0) Then
For Each Element In ssetObj
If Element.EntityType = acText And Element.Color = acByLayer Then
BracketPos = 1
Do While BracketPos <= 5000
If Element.TextString = BracketName & BracketPos Then
Element.Delete
GoTo REPEAT_FIND_TEXT_1_25:
End If
BracketPos = BracketPos + 1
Loop
End If
REPEAT_FIND_TEXT_1_25:
Next Element
End If
End Function
Подскажите пожалуйста, как на VB оптимизировать этот код. Заранее благодарен.