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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.07.2015, 08:14   #11
caute
Форумчанин
 
Регистрация: 27.10.2009
Сообщений: 277
По умолчанию

заглянул, маска поиска понятна даже для меня
и ясно, что маску замены прописных на строчные так же просто написать не получится
может, использовать список замен буквы на букву, по типу макроса, которым я конвертирую кириллицу в латиницу
Код:
Sub Propis()
  Dim sLat() As Variant
  Dim sRus As String
  Dim sOut As String
  sLat = Array("а", "б", "в", "г", "д", "е", "ё", "ж", "з", "и", "й", "к", "л", "м", "н", "о", "п", "р", "с", "т", "у", "ф", "х", "ц", "ч", "ш", "щ", "ъ", "ы", "ь", "э", "ю", "я")
  sRus = "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ"
  Dim och As Range, Index As Long
  For Each och In Selection.Characters
    Index = InStr(1, sRus, och.Text, vbBinaryCompare)
    If Index <> 0 Then
      sOut = sOut & sLat(Index - 1)
    Else
      sOut = sOut & och.Text
    End If
  Next
'  Selection.Collapse wdCollapseEnd
'  Selection.TypeParagraph
  Selection.TypeText sOut
End Sub

Последний раз редактировалось caute; 31.07.2015 в 18:48. Причина: посетила мысля
caute вне форума Ответить с цитированием
Старый 02.08.2015, 23:35   #12
caute
Форумчанин
 
Регистрация: 27.10.2009
Сообщений: 277
По умолчанию

чё, никто так и не поможет? осталась-то пара штрихов, за 5 мин. птичке долететь
caute вне форума Ответить с цитированием
Старый 03.08.2015, 19:15   #13
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию …И снова вторник, и снова с вами я!

Как вордист вордисту, дам пока намёк: изменение регистра в выделении: шифт-F3.

Жаль, что вам приходится за бесноватого автора* расхлёбывать неделями… [оставил для связности темы].

Насчёт 5 минут «для профи»: лестно слышать, но на самом деле это часа 2, и то если не отвлекают!
_________________
* я о технической стороне писания книг; и вообще: классик курсивами не частит (по Чехову)

Последний раз редактировалось Sasha_Smirnov; 04.08.2015 в 16:11. Причина: Лосев, Чехов и Куприн.
Sasha_Smirnov вне форума Ответить с цитированием
Старый 03.08.2015, 21:16   #14
caute
Форумчанин
 
Регистрация: 27.10.2009
Сообщений: 277
По умолчанию

намеки девушкам приятны, а народу треба хлеба и макросов.
как я понял, в макросе должно быть три части:
1. выделение слов, написанных прописными буквами (имеется команда, выделяющая их поочередно, а нужна - скопом)
2. форматирование выделенного курсивом
3. замена прописных букв на строчные (макрос вверху, работает, проверил, но он меняет ВСЕ прописные, а не только нужные)
Ну и в заключение объединить все эти команды в одно целое.

P.S. не обижайте автора, Саша, это лучший философ XX века, имхо
просто не было курсива у него на пишмашинке, тогда многие прописью выделяли

Последний раз редактировалось caute; 03.08.2015 в 21:22.
caute вне форума Ответить с цитированием
Старый 05.08.2015, 02:29   #15
Борис_Р
Пользователь
 
Регистрация: 18.02.2013
Сообщений: 26
По умолчанию

Цитата:
Сообщение от caute Посмотреть сообщение
как я понял, в макросе должно быть три части:
1. выделение слов, написанных прописными буквами (имеется команда, выделяющая их поочередно, а нужна - скопом)
2. форматирование выделенного курсивом
3. замена прописных букв на строчные
Выделение слов, написанных прописными буквами и форматирование выделенного курсивом
Если нужно скопом, то используем поиск и замену с подстановочными знаками.
Строка поиска, подстановочные знаки включены:
(<[А-ЯЁ]{2;}>)
Строка замены:
\1
формат - шрифт курсив
Заменить все
Затем CTRL+A (выделить весь текст) и заменить регистр букв, сначала "все строчные", затем "как в предложениях".
(можно три раза SHTFT+F3)
Если нужен макрос, то включаем макрорекодер и записываем приведенную последовательность действий.
Борис_Р вне форума Ответить с цитированием
Старый 05.08.2015, 07:53   #16
caute
Форумчанин
 
Регистрация: 27.10.2009
Сообщений: 277
По умолчанию

в принципе, вручную проблема решена благодаря возможности выделить нужные слова
Код:
        .Text = "(<[А-ЯЁ]{2;}>)"
        .Replacement.Text = "\1"
        .MatchWildcards = True
далее команды ChangeCase и Italic
С макрорекордером не получилось. Вариант с выделением всего текста мне не подходит.
А команда Selection.Range.Case = wdTitleSentence меняет только первое из выделенных слов.

Последний раз редактировалось caute; 05.08.2015 в 08:12.
caute вне форума Ответить с цитированием
Старый 06.08.2015, 13:14   #17
caute
Форумчанин
 
Регистрация: 27.10.2009
Сообщений: 277
Хорошо

ну, ладно, и на том всем спасибо
caute вне форума Ответить с цитированием
Старый 08.08.2015, 14:50   #18
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

Цитата:
Сообщение от caute Посмотреть сообщение
...меняет только первое из выделенных слов.
Но сэр!
Цитата:
Сообщение от Sasha_Smirnov Посмотреть сообщение
Нет никаких препон и для многоразовой замены (через Selection.Find)!
На наше счастье, на форуме есть люди, которые
Цитата:
Сообщение от Vladimir_K. Посмотреть сообщение
целый год учились в word работать
Sasha_Smirnov вне форума Ответить с цитированием
Старый 09.08.2015, 05:07   #19
caute
Форумчанин
 
Регистрация: 27.10.2009
Сообщений: 277
По умолчанию

Цитата:
Нет никаких препон и для многоразовой замены (через Selection.Find)!
сэр, прошу Вас поделиться развернутым мнением, желательно готовым кодом
моей квалификации не хватает
caute вне форума Ответить с цитированием
Старый 09.08.2015, 10:48   #20
shanemac51
Участник клуба
 
Аватар для shanemac51
 
Регистрация: 12.08.2010
Сообщений: 1,079
По умолчанию

попробуйте на копии
Код:
Option Explicit

Sub A______SH150809()
Dim J1
Word.ActiveDocument.Select
Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find.Replacement.Font
        .Italic = True
        .Color = vbRed
        ''-587137025
    End With
    J1 = Word.ActiveDocument.Words.Count / 4
    Do While J1 > 0
    With Selection.Find
        .Text = "(<[А-ЯЁ]{2;}>)"
        .Replacement.Text = "\1"
        '.Forward = True
        .Wrap = wdFindContinue
        .Format = True
        .MatchCase = False
        .MatchWholeWord = False
        .MatchAllWordForms = False
        .MatchSoundsLike = False
        .MatchWildcards = True
        If .Forward = True Then
            Selection.Collapse Direction:=wdCollapseEnd
        Else
            Selection.Collapse Direction:=wdCollapseStart
        End If
   
    .Execute Replace:=wdReplaceOne
    End With
With Selection.Range
Debug.Print .Start, .End, .Text
If .Start = .End Then Exit Do
''If Len("" & .Text) < 2 Then Exit Do
.Case = wdLowerCase
J1 = J1 - 1
End With
Loop
End Sub
Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание
shanemac51 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевод прописных символов в строчные C++ Евгения307 Помощь студентам 0 09.12.2013 21:18
C++ Замена прописных букв на строчные Eddie Помощь студентам 0 04.06.2009 16:52
Жирный/курсив/подчеркивание в текстовом редакторе Celica Помощь студентам 4 13.04.2009 18:30
Как задать курсив и вид шрифта при выводе на экран? prikolist Помощь студентам 4 20.06.2008 14:54