powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Макрос MS Word для удаления символов ударения
12 сообщений из 12, страница 1 из 1
Макрос MS Word для удаления символов ударения
    #39150509
crossa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть документ 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
Макрос MS Word для удаления символов ударения
    #39150531
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зачем макрос для замены, воспользуйтесь штатной заменой.
Туда нормально скопируется.
...
Рейтинг: 0 / 0
Макрос MS Word для удаления символов ударения
    #39150653
crossa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Речь идет не только о букве "а", но обо всех гласных русского языка, больших и маленьких. Маленькая буква "a" - это только пример. Для всех гласных замену придется выполнять больше десяти раз, поэтому и есть смысл упростить это с помощью макроса.
...
Рейтинг: 0 / 0
Макрос MS Word для удаления символов ударения
    #39150666
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
всего десять раз нажать Ctrl+H на выделенном символе, вбить нужный и нажать "заменить все"
блин, дольше переписываемся.

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


код надо выяснять
...
Рейтинг: 0 / 0
Макрос MS Word для удаления символов ударения
    #39150680
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
точнее
Код: vbnet
1.
    .Text = "а" + ChrW(код_ударения)
...
Рейтинг: 0 / 0
Макрос MS Word для удаления символов ударения
    #39150946
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
crossa,
если проблема еще актуальна, приложите документ с фрагментом текста с ударениями, желательно на разных буквах.
...
Рейтинг: 0 / 0
Макрос MS Word для удаления символов ударения
    #39151021
crossa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Казанский,
да, проблема еще актуальна. Вот пример документа .
...
Рейтинг: 0 / 0
Макрос MS Word для удаления символов ударения
    #39151028
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
        .Text = "о" & ChrW(769)
...
Рейтинг: 0 / 0
Макрос MS Word для удаления символов ударения
    #39151030
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
Макрос MS Word для удаления символов ударения
    #39151031
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А можно разом все убрать, если использовать "подстановочные знаки"

Код: 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
Макрос MS Word для удаления символов ударения
    #39151034
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересно, вот тут сказано, что можно задавать код символа в диалоге поиска, но мне не удалось проделать то же самое, что я проделал макросом, через диалог
...
Рейтинг: 0 / 0
Макрос MS Word для удаления символов ударения
    #39151323
crossa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, всё работает.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Макрос MS Word для удаления символов ударения
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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