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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.06.2013, 22:36   #11
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

raxp, Вы реально не понимаете, что нужно автору топика?
Создайте документ ворд, включите автонумерацию, заполните несколько пунктов.
Теперь выключите автонумерацию, но ТАК, чтобы НОМЕРА ОСТАЛИСЬ. Они должны остаться КАК ОБЫЧНЫЙ ТЕКСТ, чтобы их можно было легко изменять (редактировать, как любой другой текст).


caute, я тут на форуме просил помощи, мне нужно было нумерацию страниц превратить в обыкновенный текст. Мне помогли, написали макрос, который выполнил данную задачу. К сожалению, я в этом не силён, поэтому помочь Вам не смогу.

UPDATE
А если поступить в лоб:
выделяете текст, нажимаете копировать, запускаете из стандартных программ WordPAD, вставляете текст туда, выделяете, копируете,
возвращаетесь в MS Word, нажимаете вставить. Всё. задача решена.

p.s. А вообще, я не знаю нюансов решаемой Вами задачи, но вообще, строго говоря, Вы пытаетесь ПРАВИЛЬНО отформатированный текст, превратить в НЕПРАВИЛЬНО отформатированный.
Если бы Вы знали, сколько стоит сил и времени, чтобы подобный текст превратить в нормальный (убрать выравнивание пробелами, заменить цифры на автонумерацию, сделать нормальные заголовки, чтобы можно было собрать оглавление и т.д. и т.п.)

Последний раз редактировалось Serge_Bliznykov; 27.06.2013 в 22:43.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 27.06.2013, 23:07   #12
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

ActiveDocument.ConvertNumbersToText ?

UPDATE 23 : 12

Цитата:
запускаете из стандартных программ WordPAD
В WordPad'e есть списки. А вот в блокноте нет..

Не что подобное я когда-то делал на работе (ага.. самому смешно) Нужно было создавать архив, забивая в Вордовские документы название справок и их № страниц. Но была проблемка : где-то одна справка была на 2-х страницах, и тогда приходилось ручками вбивать числа, а затем снова вставлял список.. Геморрой был еще тот..

Последний раз редактировалось Poma][a; 27.06.2013 в 23:12.
Poma][a вне форума Ответить с цитированием
Старый 27.06.2013, 23:31   #13
caute
Форумчанин
 
Регистрация: 27.10.2009
Сообщений: 277
По умолчанию

Цитата:
Вы пытаетесь ПРАВИЛЬНО отформатированный текст, превратить в НЕПРАВИЛЬНО отформатированный.
формат текста задается СТИЛЕМ, например "нумерованный список" (встроен в Word)
отключение автонумерации меняет СТИЛЬ "нумерованный список" на "обычный", но ведь вы можете назначить выделенному тексту любой желаемый стиль - в том числе и стиль, по формату идентичный "нумерованному списку". Это легко сделать, дописав пару строк к макросу замены автонумерации на текстовую.
Только где он, тот макрос? raxp его, что ли, напишет...
Может, shanemac51 найдет, она мне раньше уже помогла.

Цитата:
выделяете текст, нажимаете копировать, запускаете из стандартных программ WordPAD, вставляете текст туда, выделяете, копируете, возвращаетесь в MS Word, нажимаете вставить.
спасибо за совет, я и сам так делал пару раз
это неудобно, но терпимо, когда в тексте пара списков
а если текст в сотню-две страниц и дюжина списков в разных местах? На этот случай я и дописал в задаче: "(или во всем тексте, если выделение отсутствует)".
caute вне форума Ответить с цитированием
Старый 27.06.2013, 23:58   #14
shanemac51
Участник клуба
 
Аватар для shanemac51
 
Регистрация: 12.08.2010
Сообщений: 1,079
По умолчанию

попробуйте на копии

Код:
Sub zspis28()
'удаление автономеров
Dim pr As Paragraph, j1, s1, s2
j1 = Word.ActiveDocument.Paragraphs.Count
Do While j1 > 0
Set pr = Word.ActiveDocument.Paragraphs(j1)
pr.Range.Select
s1 = pr.Range.Text
With Selection.Range
s2 = .ListFormat.ListString
If Len(s2) > 0 Then
Debug.Print .ListFormat.ListLevelNumber; .ListFormat.ListString; s1
.ListFormat.RemoveNumbers NumberType:=wdNumberParagraph
.Text = s2 & " " & s1
End If
End With
j1 = j1 - 1
Loop
End Sub
Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание
shanemac51 вне форума Ответить с цитированием
Старый 28.06.2013, 00:32   #15
caute
Форумчанин
 
Регистрация: 27.10.2009
Сообщений: 277
По умолчанию

работает ОК, но только по всему тексту целиком
выделение не понимает
в принципе, для большинства случаев годится, спасибо!
caute вне форума Ответить с цитированием
Старый 28.06.2013, 00:44   #16
shanemac51
Участник клуба
 
Аватар для shanemac51
 
Регистрация: 12.08.2010
Сообщений: 1,079
По умолчанию

для выделения
Код:
Sub zspis28s()
'
Dim pr As Paragraph, j1, s1, s2
j1 = Selection.Paragraphs.Count
Do While j1 > 0
Set pr = Selection.Paragraphs(j1)

s1 = pr.Range.Text
With pr.Range
s2 = .ListFormat.ListString
If Len(s2) > 0 Then
Debug.Print .ListFormat.ListLevelNumber; .ListFormat.ListString; s1
.ListFormat.RemoveNumbers NumberType:=wdNumberParagraph
.Text = s2 & " " & s1
End If
End With
j1 = j1 - 1
Loop
End Sub
Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание
shanemac51 вне форума Ответить с цитированием
Старый 28.06.2013, 02:01   #17
Vadim39
Пользователь
 
Регистрация: 19.05.2013
Сообщений: 24
По умолчанию

Попробуйте это:
Код:
Sub Convert_Spisok()
    If Selection.Start <> Selection.End Then
           Selection.Range.ListFormat.ConvertNumbersToText
        Else: ActiveDocument.ConvertNumbersToText
    End If
End Sub

Последний раз редактировалось Vadim39; 28.06.2013 в 02:17.
Vadim39 вне форума Ответить с цитированием
Старый 28.06.2013, 02:35   #18
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Если бы Вы знали, сколько стоит сил и времени, чтобы подобный текст превратить в нормальный (убрать выравнивание пробелами, заменить цифры на автонумерацию, сделать нормальные заголовки, чтобы можно было собрать оглавление и т.д. и т.п.)
Да секунды 3: макросом! Плюс семинар (для коллег) по правилам набора, минут на 45.
Цитата:
Сообщение от Poma][a Посмотреть сообщение
ActiveDocument.ConvertNumbersToText
Это пример из справки, так что raxp тоже прав.

Другое дело, что самому копать справку тяжелее, чем веткой форума!
Sasha_Smirnov вне форума Ответить с цитированием
Старый 28.06.2013, 07:18   #19
caute
Форумчанин
 
Регистрация: 27.10.2009
Сообщений: 277
По умолчанию

Vadim39, годится, отлично! спасибо
Sasha_Smirnov, грамотному человеку подсказка из справки помогает, только не мне - к тому же там еще If то, If сё
caute вне форума Ответить с цитированием
Старый 28.06.2013, 11:37   #20
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию Реплика из зала

Форум безусловно лучше справки! Я лет 5 искал это несчастное ConvertNumbersToText.

Интересно, сколько минут затратил профессионал Poma][a.
Sasha_Smirnov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Превращение ноутбука в тормоза Poma][a Компьютерное железо 26 30.05.2013 21:23
преобразование автономеров в простой текст caute Microsoft Office Word 2 08.03.2013 00:34
превращение графиков функций triple A Помощь студентам 2 04.05.2011 22:52
[паскаль!]превращение! Tifa Помощь студентам 4 31.01.2011 22:10
превращение столбца в строку unit-85 БД в Delphi 2 20.07.2009 12:49