Страницы: 1
RSS
VBA. Word. Как макросом составить последовательность Frames, а затем расставить содержимое в данной последовательности
 
Здравствуйте.
Помогите решить проблему в VBA.

В документе MS Word - находится множество рамок, в которых есть различное содержимое (либо текст, либо рисунки )
Эти рамочные элементы - VBA называет  Frames.

Задача - вынести это содержимое из рамок.
Использую код:
Код
Sub Макрос1()
    Dim fr As Frame
    For Each fr In ThisDocument.Frames
        fr.Delete
    Next fr
End Sub
Этот код удаляет рамки, но содержимое рамок - просто вываливает в документ word - в хаотическом порядке (перемешивая их в кучу).
Хотя нужен именно порядок размещения, а не просто удаление Frames.

Как макросом составить изначальную последовательность Frames в документе (снизу вверх, в том порядке как они отображаются в документе), а затем удалить Frames и расставить содержимое рамок в построенной последовательности ?
Изменено: Sanja - 31.07.2025 04:15:18
 
Это форум по Excel
Согласие есть продукт при полном непротивлении сторон
 
Sanja, а тут тоже VBA
Помогите
 
Возможно что такие frames обеспечивают точное позиционирование. Может быть просто границы у них убрать или сделать невидимыми.
И вы снова тему раскидываете по разным форумам одновременно, а о дублях не предупреждаете.
Изменено: nilske - 31.07.2025 05:54:10
 
Добрый день!

Может как-то так...
Код
Sub Макрос1()
    Dim fr As Frame, rw As Long: rw = 0
    For Each fr In ThisDocument.Frames
        Dim st As String
        st = fr.Range.Text
        
        Dim rng As Range
        Set rng = ThisDocument.Characters.Last
        
        rng.Text = st & vbNewLine
    Next fr
End Sub
 
Dmitriy XM, спасибо.  Не работает.
Запустил макрос - ничего не изменилось - рамки по-прежнему висят в документе.
 
Помогите с макросом
 
Обратитесь на форум по VBA. Word.
Согласие есть продукт при полном непротивлении сторон
 
Sanja, а это где ?
Страницы: 1
Читают тему
Наверх