Битва стилей, или как в одной строке дружно поместить множество стилей?

Статус
Закрыто для дальнейших ответов.

gasyoun

Санскритятина
Топикстартер
15 лет на форуме
Сообщения
926
Реакции
30
Доброго дня,

Подскажите, пожалуйста, как, имея отформатированный текст в Word 2013, который написан 4-мя разными шрифтами, и разновидности: обычный и курсив. А также разный цвет, например:

шрифт Arial - цвет Зеленый
шрифт Arial_Italic - цвет Салатовый
шрифт Clarendon Indologique - цвет красный

Вопрос: как присвоить каждому шрифту (в одной и той же строке, так чтобы они не перебивали друг друга) свои стили? В одной строке должны сосуществовать 5 разных стилей. Теперь же, если сначала выкрасил одним, то потом применяешь к другому месту в строке стиль и он сбивает прежний. Где стоит лишняя галочка, подскажите, пожалуйста.

Стиль1 - шрифт Arial - цвет Зеленый
Стиль2 - шрифт Arial_Italic - цвет Салатовый

Все это сделать в 1-м документе.

Сейчас же получается, что стили перекрывают друг друга, ибо применяются последовательно.

На рисунке 1, выделяю весь текст и применяю стиль 1
На рисунке 2, выделяю другие символы с другим шрифтом, захватывает все.
Рисунок 3 - Стиль1
Рисунок 4 - Стиль2

Может ли дело быть в строке "Следующий стиль"? Вордовский исходный файл в .zip архиве.

anag.jpg1.png2.pngСтиль1.pngСтиль2.pngПосмотреть вложение ista.zip
 

splxgf

12 лет на форуме
Сообщения
7 744
Реакции
3 425
Ответ: Битва стилей, или как в одной строке дружно поместить множество стилей?

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

Kreol

Участник
Сообщения
34
Реакции
1
Ответ: Битва стилей, или как в одной строке дружно поместить множество стилей?

Приветствую!
splxgf Ваш метод помог, спасибо.
Подскажите пожалуйста, пытаюсь все это дело впихнуть в vba.
Через макрорекодер что-то не все пишется.
Если руками делаю так:
Найти и заменить, перехожу на вкладку найти.
Кнопка дополнительно, шрифт. Там выбираю цвет и нажимаю на кнопку "Найти в" -> "Основной документ" Мне выделяет то что необходимо.
Но при повторном запуске макроса, заменяется лишь строка на которой стоит курсор.
findaa.jpg
Код:
   Selection.Find.ClearFormatting    Selection.Find.Font.Color = wdColorRed
    With Selection.Find
        .Text = ""
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = True
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Style = ActiveDocument.Styles("Devanagary")
 

splxgf

12 лет на форуме
Сообщения
7 744
Реакции
3 425
Ответ: Битва стилей, или как в одной строке дружно поместить множество стилей?

Не совсем понимаю для чего нужен макрос. Но в целом написано очень похоже, но скорее всего Selection.Find не выделяет весь текст в документе, ставьте отладку на первую строчку и прогуливайтесь по шагам. Ну и окошки Immerdiate/Object Browser в помощь.
 

Kreol

Участник
Сообщения
34
Реакции
1
Ответ: Битва стилей, или как в одной строке дружно поместить множество стилей?

Макрос нужен из-за большого объема выделяемого текста.
Так как выделение руками работает очень долго.
Отладка особо ничем не помогла, прошел пошагово и все.
 

splxgf

12 лет на форуме
Сообщения
7 744
Реакции
3 425
Ответ: Битва стилей, или как в одной строке дружно поместить множество стилей?

Так как выделение руками работает очень долго.
Головой нужно выделять.
Да и просто правка-замена работает на отлично. Ищешь цвет, меняешь на стиль.
 

Вложения

  • sel.jpg
    sel.jpg
    66.1 КБ · Просм.: 665

Kreol

Участник
Сообщения
34
Реакции
1
Ответ: Битва стилей, или как в одной строке дружно поместить множество стилей?

Я знаю что это работает, как это в vba реализовать?
правка-замена работает на отлично
- это руками и называется!
(не теми руками мышка + Ctrl)
 

splxgf

12 лет на форуме
Сообщения
7 744
Реакции
3 425
Ответ: Битва стилей, или как в одной строке дружно поместить множество стилей?

Я конечно могу ошибаться, но это должно прекрасно подхватываться записью макросов в VBA.
 

Вложения

  • style.jpg
    style.jpg
    36.6 КБ · Просм.: 1 118

Kreol

Участник
Сообщения
34
Реакции
1
Ответ: Битва стилей, или как в одной строке дружно поместить множество стилей?

splxgf спасибо за помощь.
Хотел чтоб Вы посмотрели файл, видимо в стилях нужно было указывать не абзац + символ, и просто символ?
При выделении 1-го стиля все нормально, на 2-м применяется не совсем так где нужно.
 

Вложения

  • Forum.rar
    45 КБ · Просм.: 358

splxgf

12 лет на форуме
Сообщения
7 744
Реакции
3 425
Ответ: Битва стилей, или как в одной строке дружно поместить множество стилей?

Наверное да, лучше остановиться только на стиле знака.
К сожалению в новых версиях ворда проверить не могу.
 

Kreol

Участник
Сообщения
34
Реакции
1
Ответ: Битва стилей, или как в одной строке дружно поместить множество стилей?

Да только что проверил, нужно оставлять только Знаки. Спасибо за Ваше терпение ;]]
 
Статус
Закрыто для дальнейших ответов.