Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Сообщений [ 15 ]
- Зарегистрирован: 28.03.2013
- Сообщений: 16
Тема: Выделение только текста (без таблиц и рисунков)
Добрый день!
Подскажите как можно выделить в документе только текст без выделения таблиц и рисунков?
Документы очень большие, работать с зажатой CTRL не удобно, и постоянно встречаются таблицы, которые не должны выделяться.
Может решение заключается в макросе?
С уважением, Максим.
- shanemac51
- генерал-полковник
- Неактивен
- Зарегистрирован: 05.03.2012
- Сообщений: 467
- Поблагодарили: 119
Re: Выделение только текста (без таблиц и рисунков)
а что надо с выделенным делать?
- Зарегистрирован: 28.03.2013
- Сообщений: 16
Re: Выделение только текста (без таблиц и рисунков)
Нужно его выровнять по ширине и добавить интервалы до и после абзаца. Но интервалы не всегда.
Соответственное если выделить весь документ, то выровняется текст и в таблицах, а этого не надо.
- shanemac51
- генерал-полковник
- Неактивен
- Зарегистрирован: 05.03.2012
- Сообщений: 467
- Поблагодарили: 119
Re: Выделение только текста (без таблиц и рисунков)
Меня смутила фраза
как можно выделить в документе только текст без выделения таблиц и рисунков?
- shanemac51
- генерал-полковник
- Неактивен
- Зарегистрирован: 05.03.2012
- Сообщений: 467
- Поблагодарили: 119
- За сообщение: 1
Re: Выделение только текста (без таблиц и рисунков)
примерно так ---попробуйте сначала на копии
Sub a_130531_1433()
'интервалы для гладкого текста
'выравнивание по ширине
Dim pr As Paragraph
Dim j1 'текст в таблице
Dim s1 'текст параграфа
For Each pr In Word.ActiveDocument.Paragraphs
pr.Range.Select
j1 = Selection.Information(wdWithInTable)
s1 = pr.Range.Text
If Len(s1) > 3 Then
Selection.ParagraphFormat.Alignment = wdAlignParagraphJustify
End If
If j1 = False Then
With Selection.ParagraphFormat
.LeftIndent = CentimetersToPoints(0)
.RightIndent = CentimetersToPoints(0)
.SpaceBefore = 12
.SpaceBeforeAuto = False
.SpaceAfter = 3
.SpaceAfterAuto = False
.LineSpacingRule = wdLineSpaceSingle
.Alignment = wdAlignParagraphJustify
.WidowControl = True
.KeepWithNext = False
.KeepTogether = False
.PageBreakBefore = False
.NoLineNumber = False
.Hyphenation = True
.FirstLineIndent = CentimetersToPoints(0)
.OutlineLevel = wdOutlineLevelBodyText
.CharacterUnitLeftIndent = 0
.CharacterUnitRightIndent = 0
.CharacterUnitFirstLineIndent = 0
.LineUnitBefore = 0
.LineUnitAfter = 0
.MirrorIndents = False
.TextboxTightWrap = wdTightNone
.AutoAdjustRightIndent = True
.DisableLineHeightGrid = False
.FarEastLineBreakControl = True
.WordWrap = True
.HangingPunctuation = True
.HalfWidthPunctuationOnTopOfLine = False
.AddSpaceBetweenFarEastAndAlpha = True
.AddSpaceBetweenFarEastAndDigit = True
.BaseLineAlignment = wdBaselineAlignAuto
End With
End If
Next pr
End Sub
- Зарегистрирован: 28.03.2013
- Сообщений: 16
Re: Выделение только текста (без таблиц и рисунков)
Данные в таблицах тоже выравнивает по ширине, чего делать не нужно.
Можно ли просто выделить весь текст, а я сам потом уже вручную нажму выравнивание по ширине?
Потому что мне не всегда надо добавлять интервалы, а выравнивать надо всегда.
- Alex_Gur
- Модератор
- Неактивен
- Откуда: Москва
- Зарегистрирован: 28.07.2011
- Сообщений: 2,758
- Поблагодарили: 492
- За сообщение: 1
Re: Выделение только текста (без таблиц и рисунков)
shanemac51, это гениально!
Немного преобразовал код shanemac51, который должен отличать обычный текст от текста в таблице и от рисунков.
Sub a_130531_1433()
'интервалы для гладкого текста
'выравнивание по ширине
Dim pr As Paragraph
Dim j1 'текст в таблице
Dim s1 'текст параграфа
For Each pr In Word.ActiveDocument.Paragraphs
pr.Range.Select
j1 = Selection.Information(wdWithInTable)
s1 = pr.Range.Text
'Отделение таблиц, рисунков и пустых строк
If j1 = False And Len(s1) > 3 Then
'(Обработка выделенного фрагмента)
MsgBox ("Обработка выделенного фрагмента")
End If
Next pr
End Sub
Макрос обрабатывает абзацы по одному. Все выделить, кроме таблиц и рисунков, пока не получается.
Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.
- Вождь
- Модератор
- Неактивен
- Зарегистрирован: 07.01.2010
- Сообщений: 745
- Поблагодарили: 181
- За сообщение: 1
Re: Выделение только текста (без таблиц и рисунков)
Пометьте таблицы и рисунки или остальной текст, после чего, используйте поиск для выделения всех вхождений того или другого. Способов пометки множество, например:
- изменить уровень абзацев, например на 9
- использовать выделение цветом
...
По-моему, использование уровней довольно удобно. Если же, при оформлении документа, использовались стили, то выделение сильно упрощается.
Макросы под заказ и готовый пакет - mtdmacro.ru
- Зарегистрирован: 28.03.2013
- Сообщений: 16
Re: Выделение только текста (без таблиц и рисунков)
Вождь пишет:Пометьте таблицы и рисунки или остальной текст, после чего, используйте поиск для выделения всех вхождений того или другого. Способов пометки множество, например:
- изменить уровень абзацев, например на 9
- использовать выделение цветом
...
По-моему, использование уровней довольно удобно. Если же, при оформлении документа, использовались стили, то выделение сильно упрощается.
То есть Вы предлагаете опять же вручную выделять?
У меня часто бывают тексты по 200 страниц, на каждой второй скажем странице идет небольшая таблица, которую трогать не надо. Получается очень много времени уходит просто на выделение текста.
С уважением, Максим.
- Зарегистрирован: 28.03.2013
- Сообщений: 16
Re: Выделение только текста (без таблиц и рисунков)
Alex_Gur пишет:Немного преобразовал код shanemac51, который должен отличать обычный текст от текста в таблице и от рисунков.
Sub a_130531_1433()
'интервалы для гладкого текста
'выравнивание по ширине
Dim pr As Paragraph
Dim j1 'текст в таблице
Dim s1 'текст параграфа
For Each pr In Word.ActiveDocument.Paragraphs
pr.Range.Select
j1 = Selection.Information(wdWithInTable)
s1 = pr.Range.Text
'Отделение таблиц, рисунков и пустых строк
If j1 = False And Len(s1) > 3 Then
'(Обработка выделенного фрагмента)
MsgBox ("Обработка выделенного фрагмента")
End If
Next pr
End Sub
Макрос обрабатывает абзацы по одному. Все выделить, кроме таблиц и рисунков, пока не получается.
Выскакивает окошко "Обработка выделенного фрагмента", выделяется следующий фрагмент, потом снова окошко, но форматирование текста не меняется.
- shanemac51
- генерал-полковник
- Неактивен
- Зарегистрирован: 05.03.2012
- Сообщений: 467
- Поблагодарили: 119
- За сообщение: 1
Re: Выделение только текста (без таблиц и рисунков)
удалите строку
MsgBox ("Обработка выделенного фрагмента")
- shanemac51
- генерал-полковник
- Неактивен
- Зарегистрирован: 05.03.2012
- Сообщений: 467
- Поблагодарили: 119
- За сообщение: 2
Re: Выделение только текста (без таблиц и рисунков)
Sub a_130531_1433()
'интервалы для гладкого текста
'выравнивание по ширине
Dim pr As Paragraph
Dim j1 'текст в таблице
Dim s1 'текст параграфа
For Each pr In Word.ActiveDocument.Paragraphs
pr.Range.Select
j1 = Selection.Information(wdWithInTable)
s1 = pr.Range.Text
If j1 = False and Len(s1) > 3 Then
With Selection.ParagraphFormat
.Alignment = wdAlignParagraphJustify
.LeftIndent = CentimetersToPoints(0)
.RightIndent = CentimetersToPoints(0)
.SpaceBefore = 12
.SpaceBeforeAuto = False
.SpaceAfter = 3
.SpaceAfterAuto = False
.LineSpacingRule = wdLineSpaceSingle
.Alignment = wdAlignParagraphJustify
.WidowControl = True
.KeepWithNext = False
.KeepTogether = False
.PageBreakBefore = False
.NoLineNumber = False
.Hyphenation = True
.FirstLineIndent = CentimetersToPoints(0)
.OutlineLevel = wdOutlineLevelBodyText
.CharacterUnitLeftIndent = 0
.CharacterUnitRightIndent = 0
.CharacterUnitFirstLineIndent = 0
.LineUnitBefore = 0
.LineUnitAfter = 0
.MirrorIndents = False
.TextboxTightWrap = wdTightNone
.AutoAdjustRightIndent = True
.DisableLineHeightGrid = False
.FarEastLineBreakControl = True
.WordWrap = True
.HangingPunctuation = True
.HalfWidthPunctuationOnTopOfLine = False
.AddSpaceBetweenFarEastAndAlpha = True
.AddSpaceBetweenFarEastAndDigit = True
.BaseLineAlignment = wdBaselineAlignAuto
End With
End If
Next pr
End Sub
- Зарегистрирован: 28.03.2013
- Сообщений: 16
Re: Выделение только текста (без таблиц и рисунков)
Благодарю, работает.
Подскажите что удалить из макроса, чтобы он только выравнивал текст по ширине без изменения интервалов.
- shanemac51
- генерал-полковник
- Неактивен
- Зарегистрирован: 05.03.2012
- Сообщений: 467
- Поблагодарили: 119
- За сообщение: 1
Re: Выделение только текста (без таблиц и рисунков)
убери строки
.SpaceBefore = 12
.SpaceBeforeAuto = False
.SpaceAfter = 3
.SpaceAfterAu
- Зарегистрирован: 28.03.2013
- Сообщений: 16
Re: Выделение только текста (без таблиц и рисунков)
Благодарю!
Все замечательно работает!
Сообщений [ 15 ]
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Выделение только текста (без таблиц и рисунков)
Как часто, набирая огромный текст или редактируя чужой шедевр, вы возмущались про себя необходимостью по много раз выполнять ту или иную механическую операцию? На портале о Microsoft Office Word вы узнаете про: гиперссылки в экселе 2003.
Возможно, что перейдя со знакомой и привычной 2003 версии Ворда в новую, вы долго не можете отыскать привычных функций и выстроить алгоритм работы? Наш сайт о Microsoft Office Word даст ответ про: как ставить номерацию страниц microsoft word.
Со всем этим и со многими другими трудностями вам помогут разобраться на форуме Ворд Эксперт. Участники разберут любую вашу проблему, предложат несколько вариантов решения. Наш сайт о Microsoft Office Word даст ответ про: счетчик word.
Здесь вы найдете алгоритмы написания шаблонов, наработки по настройкам различных функций, макросы для работы с таблицами, заголовками, списками и многое другое. На портале о Microsoft Office Word вы узнаете про: как выделить все рисунки в world документе.
Если ваша проблема уникальна, всегда можете оставить заявку на ее решение в соответствующем подразделе. Наш сайт о Microsoft Office Word даст ответ про: как в 2003 офисе настроить поля и разметку страницы.