powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBA Word автоматизация "ALT+X" для исправления кривого документа
1 сообщений из 1, страница 1 из 1
VBA Word автоматизация "ALT+X" для исправления кривого документа
    #40060573
notOne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемые гуру, ситуация следующая: имеется древний документ, в котором когда-то были проставлены ударения по методу "установить курсор после ударяемой буквы, набрать 0301 и нажать "ALT+X". Судя по всему, проставлялись все ударения вручную...
Когда-то ещё году в 2010-ом этот документ открывался вполне нормально - все ударения отображались толково. Сейчас же при открытии вместо ударений отображается какой-то нераспознанный символ (простой квадратик).
Что я удумал: поскольку через VBA заменить этот символ не удаётся (они при копиировании из Ворда в VBA замещается знаком вопроса), я для начала средствами самого Ворда заменил все эти квадратики на заведомо не встречающееся в документе сочетание "7777". Теперь думаю в VBA сделать следующее: глобально искать 7777 и заменять на 0301 и тут же автоматически "нажимать" "ALT+X", что, как я надеюсь, вернёт родные ударения. Код ниже:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
Sub Macro3()
'
' Macro3 Macro
'
'
With ActiveDocument.Content.Find

.ClearFormatting

.Text = "7777"

With .Replacement

.ClearFormatting

.Text = "0301"


End With


.Execute Replace:=wdReplaceAll

End With
    
    
End Sub


Модератор: Учимся использовать тэги оформления кода - FAQ

Для эмуляции нажатия "ALT+X" думаю применять Selection.ToggleCharacterCode , однако перед этим надо, чтобы соответствующая позиция в документе получила фокус, т.е. общий алгоритм таков (включая вышеприведённый код):
1. Просматривать текст документа глобально и при нахождении 7777 сразу заменять на 0301.
2. Установить фокус в позицию только что замененного текста и применить Selection.ToggleCharacterCode .
3. Перейти к следующему 7777 и т.д.


Внимание, вопрос: что добавить в код выше, чтобы выполнить шаг 2 - установить фокус (без которого Selection.ToggleCharacterCode не сработает)?

Спасибо!
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBA Word автоматизация "ALT+X" для исправления кривого документа
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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