Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.12.2009, 17:11   #11
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Не помню сортировки. Был макрос по выделению всего заголовка, но не сортировки
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 22.12.2009, 22:12   #12
maxys146
 
Регистрация: 22.12.2009
Сообщений: 6
По умолчанию

Участники.doc
Вот пример файла. Заголовки 15 размером шрифта, по ним надо сортировать содержимое.
maxys146 вне форума Ответить с цитированием
Старый 22.12.2009, 22:12   #13
maxys146
 
Регистрация: 22.12.2009
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Sasha_Smirnov Посмотреть сообщение
Вид → Структура → уровень ваших заголовков → сортировать

Алекс, помнится, до вышеуказанного приёма, был тут диалог о макросе, делающем то же самое, но со скрипом. Я тогда внёс ясность, чему даже сам удивился!
Сортируются лишь заголовки, текст за ними остается как был
maxys146 вне форума Ответить с цитированием
Старый 22.12.2009, 22:43   #14
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Sasha_Smirnov оказался абсолютно прав.
  1. Нужно перейти в режим структуры (Вид→Структура).
  2. Нужным заголовкам назначить первый уровень. Выбрать тут же показ только первого уровня.
  3. Для 2003 офиса: меню Таблица→Сортировка…, для 2007 и 2010: кнопка сортировки в группе «Абзац» на вкладке «Главная».
  4. Сортируем, выходим из режима структуры и наслаждаемся результатом.
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 22.12.2009, 23:06   #15
maxys146
 
Регистрация: 22.12.2009
Сообщений: 6
По умолчанию

Дело в том, что очень много заголовков, как и файлов требующих форматирования. Можно как-то автоматизировать процесс если все(и только) заголовки используют 15-й шрифт?
maxys146 вне форума Ответить с цитированием
Старый 23.12.2009, 16:38   #16
garik64
Форумчанин
 
Регистрация: 09.07.2009
Сообщений: 111
Вопрос

Цитата:
Сообщение от maxys146 Посмотреть сообщение
Дело в том, что очень много заголовков, как и файлов требующих форматирования. Можно как-то автоматизировать процесс если все(и только) заголовки используют 15-й шрифт?
Вообще-то, если нажать правой кнопкой мыши на текст, выпадет меню, в котором будет пункт "выделить текст, имеющий такой же формат" - т.е. все аналогичные заголовки выделятся.

А вот что у меня получилось с помощью макрорекордера, рашпиля и такой-то матери:

***

Sub сортировщик()
'
' сортировщик Макрос
' Макрос записан 23.12.2009 garik64
'
Dim sorter As Boolean

Do While Not sorter

Selection.Find.ClearFormatting
With Selection.Find
.Font.Size = 15
.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute
Selection.Style = wdStyleHeading1
Selection.Find.ClearFormatting


If Not Selection.Find.Found Then

sorter = True

End If


Loop

ActiveWindow.ActivePane.View.Type = wdMasterView
Selection.Range.Paragraphs.OutlineL evel = wdOutlineLevel1
ActiveWindow.ActivePane.View.Collap seOutline Range:=Selection.Range
Selection.MoveDown Unit:=wdLine, Count:=1
Selection.Sort ExcludeHeader:=False, FieldNumber:="абзацам", SortFieldType _
:=wdSortFieldAlphanumeric, SortOrder:=wdSortOrderAscending, FieldNumber2 _
:="", SortFieldType2:=wdSortFieldAlphanum eric, SortOrder2:= _
wdSortOrderAscending, FieldNumber3:="", SortFieldType3:= _
wdSortFieldAlphanumeric, SortOrder3:=wdSortOrderAscending, Separator:= _
wdSortSeparateByTabs, SortColumn:=False, CaseSensitive:=False, LanguageID _
:=wdRussian, SubFieldNumber:="абзацам", SubFieldNumber2:="абзацам", _
SubFieldNumber3:="абзацам"
Selection.HomeKey Unit:=wdStory
ActiveWindow.ActivePane.View.Expand Outline Range:=Selection.Range
If ActiveWindow.View.SplitSpecial = wdPaneNone Then
ActiveWindow.ActivePane.View.Type = wdPrintView
Else
ActiveWindow.View.Type = wdPrintView
End If
End Sub

****

Вопрос знатокам: что здесь не так? Работает, но Do-While выполняет один лишний раз. Или не лишний? Условие "If Not Selection.Find.Found Then sorter = True" выполняется, но всё равно происходит loop, всё повторяется, а уже потом уходит дальше. ЧЯДНТ?
garik64 вне форума Ответить с цитированием
Старый 23.12.2009, 17:09   #17
maxys146
 
Регистрация: 22.12.2009
Сообщений: 6
По умолчанию

Цитата:
Сообщение от garik64 Посмотреть сообщение
Вообще-то, если нажать правой кнопкой мыши на текст, выпадет меню, в котором будет пункт "выделить текст, имеющий такой же формат" - т.е. все аналогичные заголовки выделятся.
Усе, спасибо всем огромное)))
maxys146 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка слов по алфавиту dom1nator Помощь студентам 0 11.11.2009 00:04
сортировка по алфавиту на си++ Craz Помощь студентам 2 01.10.2009 23:33
Сортировка слов по алфавиту victorio Microsoft Office Word 7 15.12.2007 19:03
Сортировка по алфавиту ЧИЖ Общие вопросы Delphi 1 16.03.2007 14:17