Первый раз в вашем цикле currentRow равен 0. Поэтому вы удаляете строку с индексом 0. Вторая строка теперь становится первой строкой, а ее индекс меняется с 1 на 0. Однако ваш цикл увеличивает currentRow до 1, поэтому вы пропускаетеновый первый ряд.Это повторяется для каждой итерации, и вы пропускаете каждую вторую строку.
Вы можете просто удалить первую строку, пока не останется ни одной строки.
While Shape.RowExists(Visio.VisSectionIndices.visSectionConnectionPts, visRowFirst, 0)
Shape.DeleteRow Visio.VisSectionIndices.visSectionConnectionPts, visRowFirst
Wend
В зависимости от вашего приложения, самым простым решением может быть удаление раздела точки подключения:
Shape.DeleteSection Visio.VisSectionIndices.visSectionConnectionPts