Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Сообщений [ 8 ]
- k.h.o.m.a.n.
- сержант
- Неактивен
- Откуда: Белгород
- Зарегистрирован: 29.07.2010
- Сообщений: 10
Тема: Схема документа. Как скопировать?
Приветствую всех, кто хочет жить проще и лучше в вордовском мире. Прошу помощи. Необходимо скопировать структуру документа (появляется нажатием Схема документа) в новый файл, чтобы не шерстить весь текст, выделяя заголовки с нажатой клавишей Ctrl. Возможны другие способы проделать данную операцию, но сделав минимум телодвижений? Поделитесь знаниями. Спасибо.
- viter.alex
- Модератор
- Неактивен
- Откуда: Харьков, Украина
- Зарегистрирован: 21.12.2009
- Сообщений: 884
- Поблагодарили: 140
Re: Схема документа. Как скопировать?
Скопируй заголовки и структура появится сама собой
Лучше день потерять — потом за пять минут долететь!
- k.h.o.m.a.n.
- сержант
- Неактивен
- Откуда: Белгород
- Зарегистрирован: 29.07.2010
- Сообщений: 10
Re: Схема документа. Как скопировать?
viter.alex пишет:Скопируй заголовки и структура появится сама собой
В этом всё и дело, просматривать весь документ с зажатой клавишей Ctrl очень не серьёзно. Если не машина, так рука подведет и дрогнет. Нужно, чтобы не человек, а машина сама копировала все заголовки. Если копировать из оглавления, то получается, что хотел, но только текст вставлен в поле, а так не нужно. Другие способы есть?
- viter.alex
- Модератор
- Неактивен
- Откуда: Харьков, Украина
- Зарегистрирован: 21.12.2009
- Сообщений: 884
- Поблагодарили: 140
Re: Схема документа. Как скопировать?
После трудового дня как-то не думается. Вот решение в лоб:
Копирование всех абзацев. чей уровень отличен от основного текста
Sub CopyStructure()
Dim oPar As Paragraph
Dim oNewDoc As Document
Dim bCopied As Boolean
Set oPar = ActiveDocument.Paragraphs.First
Set oNewDoc = Documents.Add(Visible:=False)
'Перебор всех абзацев в тексте, отбирая те, которые не основной текст
Do Until oPar Is Nothing
If oPar.OutlineLevel <> wdOutlineLevelBodyText Then
bCopied = True
oNewDoc.Range.InsertAfter oPar.Range.Text
'Применяем к абзацу соответствующий стиль
If Not StyleExists(oNewDoc, oPar.Style) Then
'Если в новом документе стиля нет, то копируем
Application.OrganizerCopy ActiveDocument.FullName, oNewDoc.FullName, oPar.Style, wdOrganizerObjectStyles
End If
oNewDoc.Paragraphs.Last.Previous.Style = oPar.Style
End If
Set oPar = oPar.Next
DoEvents
Loop
If bCopied Then
Application.Visible = True
Else
oNewDoc.Close False
End If
End Sub
'Функция проверяет наличие стиля в документе
Function StyleExists(Doc As Document, StyleName As String) As Boolean
Dim sName As String
On Error Resume Next
sName = Doc.Styles(StyleName).NameLocal
StyleExists = Err.Number = 0
Err.Clear
End Function
Очень надеюсь, что найдётся более красивое решение.
Лучше день потерять — потом за пять минут долететь!
- Вождь
- Модератор
- Неактивен
- Зарегистрирован: 07.01.2010
- Сообщений: 745
- Поблагодарили: 181
Re: Схема документа. Как скопировать?
Вот другой метод. Здесь структура не копируется, а сохраняется вместе со всеми свойствами исходного документа. А уж как лучше решать Вам, это зависит от назначения полученного документа-структуры.
Sub ExcludeStructure()
Dim D As Document
Dim R As Range
Set D = Application.Documents.Add( _
Template:=ActiveDocument.FullName)
Set R = D.Range(0, 0)
With R.Find
.ParagraphFormat.OutlineLevel = wdOutlineLevelBodyText
.Format = True
.Forward = True
.Wrap = wdFindStop
End With
Do While R.Find.Execute
R.Expand wdParagraph
R.Delete
Loop
D.UndoClear
End Sub
Важно: обрабатываемый документ должен быть предварительно сохранен!!!
Макросы под заказ и готовый пакет - mtdmacro.ru
- k.h.o.m.a.n.
- сержант
- Неактивен
- Откуда: Белгород
- Зарегистрирован: 29.07.2010
- Сообщений: 10
Re: Схема документа. Как скопировать?
Благодарю всех за помощь, у меня все получилось... с макросами дело раньше не имел (кроме макроса "удалить лишние пробелы" и "заменить кавычки"), но в итоге они очень облегчают жизнь. Буду впредь обращать внимание на эту возможность быстро и качественно решить требуемую задачу.
- mikkelle
- полковник
- Неактивен
- Зарегистрирован: 21.01.2010
- Сообщений: 227
- Поблагодарили: 12
Re: Схема документа. Как скопировать?
Структура документа показывается в свойствах документа на вкладке Состав. Вот только как эти данные от туда вытащить?
- Зарегистрирован: 26.01.2011
- Сообщений: 28
- Поблагодарили: 1
Re: Схема документа. Как скопировать?
k.h.o.m.a.n. пишет:viter.alex пишет:Скопируй заголовки и структура появится сама собой
В этом всё и дело, просматривать весь документ с зажатой клавишей Ctrl очень не серьёзно. Если не машина, так рука подведет и дрогнет. Нужно, чтобы не человек, а машина сама копировала все заголовки. Если копировать из оглавления, то получается, что хотел, но только текст вставлен в поле, а так не нужно. Другие способы есть?
Я бы сделал так:
1 - создать оглавление
2 - выделить его и скопировать (Ctrl-C)
3 - в другом документе вставить (Ctrl-V) в режиме "Только текст"
Сообщений [ 8 ]
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Схема документа. Как скопировать?
Вам приходилось, к примеру, редактировать текст, весом с хороший булыжник, где нерадивый наборщик поставил по сорок пробелов между словами? На портале о Microsoft Office Word вы узнаете про: как создать заметку в word с помощью текстового редактора.
Пытались ли вы когда-нибудь вручную поменять в Microsoft Word стили? Вы перешли на новую версию программы, все непривычно и непонятно? На портале о Microsoft Office Word вы узнаете про: скачать ключ для microsoft word 2007.
А может, наоборот, вам пришли в голову оригинальные решения, которыми вы хотите поделить с другими пользователями? На портале о Microsoft Office Word вы узнаете про: книжный лист в ворде.
Приглашаем вас посетить форум Ворд Эксперт, где собраны все основные вопросы по этой программе, касательно настроек, работы с документами, в том числе и сложные случаи исправления чужих ошибок и косяков. Наш сайт о Microsoft Office Word даст ответ про: правильно оформить реферат word.
Побывав на форуме, вы поймете, что написать макрос – легко и просто, а при желании найдете литературу на этой теме (список прямо на главной). На портале о Microsoft Office Word вы узнаете про: text замена.
Возможно, ответ на свой вопрос или решение проблемы вы отыщете в разделах автоматизации или готовых решений. Наш сайт о Microsoft Office Word даст ответ про: майкрософт офис 2007 не открывается.
Если ваша проблема уникальна, можно всегда сделать заявку в соответствующем разделе. Также в этих разделах вы можете выложить свои наработки. На портале о Microsoft Office Word вы узнаете про: как настроить формат наклейки в word.
Что приятно, на форуме довольно строгий контроль спама и флуда, на Ворд Эксперт общаются профессионально, но на доступном и понятном языке. Наш сайт о Microsoft Office Word даст ответ про: стили текста в ячейке таблицы.
Для общих тем существует «курилка», для пожеланий по работе предусмотрен свой раздел.