|
VBA Word автоматизация "ALT+X" для исправления кривого документа
|
|||
---|---|---|---|
#18+
Уважаемые гуру, ситуация следующая: имеется древний документ, в котором когда-то были проставлены ударения по методу "установить курсор после ударяемой буквы, набрать 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.
Модератор: Учимся использовать тэги оформления кода - FAQ Для эмуляции нажатия "ALT+X" думаю применять Selection.ToggleCharacterCode , однако перед этим надо, чтобы соответствующая позиция в документе получила фокус, т.е. общий алгоритм таков (включая вышеприведённый код): 1. Просматривать текст документа глобально и при нахождении 7777 сразу заменять на 0301. 2. Установить фокус в позицию только что замененного текста и применить Selection.ToggleCharacterCode . 3. Перейти к следующему 7777 и т.д. Внимание, вопрос: что добавить в код выше, чтобы выполнить шаг 2 - установить фокус (без которого Selection.ToggleCharacterCode не сработает)? Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2021, 04:50 |
|
|
start [/forum/topic.php?fid=60&fpage=2&tid=2154735]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
28ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
33ms |
get tp. blocked users: |
2ms |
others: | 271ms |
total: | 385ms |
0 / 0 |