Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Поиск и замена надстрочных символов  (Прочитано 8082 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Саша
Гость
« : 09-11-2009 04:25 » 

Всем привет!:)
Подскажите, если не трудно, такая проблема: нужно написать макрос, чтобы он находил на странице, например, все буквы Q, и заменял их на единицу, но уже в виде надстрочного символа (это вроде степени, например, А в квадрате:)))

Я вот написал:

Код:
Selection.Find.Replacement.ClearFormatting
        Selection.Find.ClearFormatting
        Selection.Find.Text = "Q"
        Selection.Find.Replacement.Font.Superscript = wdToggle
        Selection.Find.Replacement.Text = "1"
        Selection.Find.Forward = True
        Selection.Find.Wrap = wdFindContinue
        Selection.Find.Format = False
        Selection.Find.MatchCase = False
        Selection.Find.MatchWholeWord = False
        Selection.Find.MatchWildcards = False
        Selection.Find.MatchSoundsLike = False
        Selection.Find.MatchAllWordForms = False
    Selection.Find.Execute Replace:=wdReplaceAll

Но этот код почему-то просто замещает все Q на 1, без перевода их в надстрочные.
Помогите, пожалуйста:)
« Последнее редактирование: 09-11-2009 07:32 от Sel » Записан
HandKot
Молодой специалист

ru
Offline Offline

« Ответ #1 : 09-11-2009 05:32 » 

добавьте ещё одну строку

Код:
       .Replacement.Font.Superscript = True

а точнее у Вас уже есть такая строка
Код:
Selection.Find.Replacement.Font.Superscript = wdToggle
попробуйте в ней вместо wdToggle подставить True
« Последнее редактирование: 09-11-2009 05:33 от HandKot » Записан

I Have Nine Lives You Have One Only
THINK!
Саша
Гость
« Ответ #2 : 09-11-2009 06:43 » 

Мне эта идея тоже в голову приходила:) но блин ,эффекта ноль:(
Записан
HandKot
Молодой специалист

ru
Offline Offline

« Ответ #3 : 09-11-2009 10:00 » 

не знаю
Ворд 2003, код работатет

Код:
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "q"
        .Replacement.Text = "1"
        .Replacement.Font.Superscript = True
        .Forward = True
        .Wrap = wdFindContinue
        .Format = True
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll

кажись у нас еще в этой строке разница
Код:
Selection.Find.Format = False
Записан

I Have Nine Lives You Have One Only
THINK!
Саша
Гость
« Ответ #4 : 09-11-2009 10:54 » 

Благодарю!:) Всё заработало:)
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines