Я сделал это с помощью закладки внутри RichTextControl, чтобы просто переместить ее выше / ниже другой из двух кнопок на панели действий. Например, для перемещения вверх, где «bm» ниже соответствует выбранной закладке:
Dim pageBookmark As Microsoft.Office.Tools.Word.Bookmark
pageBookmark = Globals.ThisDocument.Controls.Item(bm)
pageBookmark.Range.Relocate(Direction:=Word.WdRelocate.wdRelocateUp)
Для древовидного представления это было бы более сложно, но я мог видеть, что вы хотите, чтобы все ваши элементы управления richtext были проиндексированы (возможно, используйте свойство "tag"), а затем, когда вы перемещаете их в виде дерева, используйте индекс для добавления / вычитания из других индексов и последующего многократного использования метода «Перемещение» в цикле, чтобы получить его в новом месте. Затем вы можете зациклить и воссоздать индекс. Application.ScreenUpdating = False
в начале цикла и возврат его на = True
в конце цикла также остановит мерцание.