Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Макрос MS Word для удаления символов ударения / 12 сообщений из 12, страница 1 из 1
19.01.2016, 12:59
    #39150509
crossa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Макрос MS Word для удаления символов ударения
Есть документ Microsoft Word, где в словах проставлены ударения. Возникла необходимость убрать эти символы. Написал простой макрос для замены (русская буква "а" с ударением заменяется на обычную букву "а"), но не знаю, как задать букву с ударением в строке поиска. Когда копируешь такую букву в документе и вставляешь в текст макроса, получается "а?".
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
With ActiveDocument.Content.Find
    .ClearFormatting
    .Text = "а?"
    .Replacement.ClearFormatting
    .Replacement.Text = "а"
    .Execute Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchCase:=True
End With


Подскажите, что необходимо написать в строке .Text?
Вставка символа ударения осуществлялась так: при редактировании документа MS Word печаталась буква "a", затем "301", и нажималась комбинация ALT+X. Над буквой "а" появлялся символ ударения.
...
Рейтинг: 0 / 0
19.01.2016, 13:10
    #39150531
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Макрос MS Word для удаления символов ударения
Зачем макрос для замены, воспользуйтесь штатной заменой.
Туда нормально скопируется.
...
Рейтинг: 0 / 0
19.01.2016, 14:30
    #39150653
crossa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Макрос MS Word для удаления символов ударения
Речь идет не только о букве "а", но обо всех гласных русского языка, больших и маленьких. Маленькая буква "a" - это только пример. Для всех гласных замену придется выполнять больше десяти раз, поэтому и есть смысл упростить это с помощью макроса.
...
Рейтинг: 0 / 0
19.01.2016, 14:40
    #39150666
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Макрос MS Word для удаления символов ударения
всего десять раз нажать Ctrl+H на выделенном символе, вбить нужный и нажать "заменить все"
блин, дольше переписываемся.

для юникодовых символов используется функция ChrW, то есть примерно будет выглядеть так:
Код: vbnet
1.
    .Text = ChrW(код_символа)


код надо выяснять
...
Рейтинг: 0 / 0
19.01.2016, 14:49
    #39150680
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Макрос MS Word для удаления символов ударения
точнее
Код: vbnet
1.
    .Text = "а" + ChrW(код_ударения)
...
Рейтинг: 0 / 0
19.01.2016, 19:58
    #39150946
Казанский
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Макрос MS Word для удаления символов ударения
crossa,
если проблема еще актуальна, приложите документ с фрагментом текста с ударениями, желательно на разных буквах.
...
Рейтинг: 0 / 0
20.01.2016, 00:19
    #39151021
crossa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Макрос MS Word для удаления символов ударения
Казанский,
да, проблема еще актуальна. Вот пример документа .
...
Рейтинг: 0 / 0
20.01.2016, 00:56
    #39151028
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Макрос MS Word для удаления символов ударения
Код: vbnet
1.
        .Text = "о" & ChrW(769)
...
Рейтинг: 0 / 0
20.01.2016, 00:59
    #39151030
Казанский
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Макрос MS Word для удаления символов ударения
crossa,
примитивное решение
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
Sub bb()
Dim i&
  For i = ActiveDocument.Range.End - 1 To 0 Step -1
    If AscW(ActiveDocument.Range(i, i + 1).Text) = 769 Then
      ActiveDocument.Range(i, i + 1).Delete
    End If
  Next
End Sub
...
Рейтинг: 0 / 0
20.01.2016, 01:00
    #39151031
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Макрос MS Word для удаления символов ударения
А можно разом все убрать, если использовать "подстановочные знаки"

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "(?)" + ChrW(769)
        .Replacement.Text = "\1"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchAllWordForms = False
        .MatchSoundsLike = False
        .MatchWildcards = True
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
...
Рейтинг: 0 / 0
20.01.2016, 01:11
    #39151034
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Макрос MS Word для удаления символов ударения
Интересно, вот тут сказано, что можно задавать код символа в диалоге поиска, но мне не удалось проделать то же самое, что я проделал макросом, через диалог
...
Рейтинг: 0 / 0
20.01.2016, 12:40
    #39151323
crossa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Макрос MS Word для удаления символов ударения
Спасибо, всё работает.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Макрос MS Word для удаления символов ударения / 12 сообщений из 12, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]