|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
11.02.2015, 10:14 | #1 |
Пользователь
Регистрация: 03.04.2012
Сообщений: 20
|
Замена символов на другие или комбинацию клавиш на VBA
Добрый день друзья! Нужно на VBA написать макрос для Ворда, чтобы можно было менять пробелы или символы на другие символы или вместо символа вставлял некую комбинацию клавиш, как будто пользователь сам нажимал бы. При нажатии клавиш, с зажатием Alt появляются не стандартные символы, которые мне нужны. Так же нужно, заменяющие символы были невидимые. Вот написал чучуть, дальше не знаю как:
Код:
Последний раз редактировалось Stilet; 11.02.2015 в 19:53. |
11.02.2015, 10:31 | #2 |
Участник клуба
Регистрация: 30.07.2008
Сообщений: 1,601
|
Замену в набранном тексте можно осуществлять с использованием регулярных выражений. В VBScript есть объект regexp
Пример использования regexp в VBA - http://www.macrostash.com/2011/10/08...for-excel-vba/ Замену "на лету" можно осуществлять функцией SendMessage. Нестандартные символы - метод KeyString класса Aplication https://msdn.microsoft.com/en-us/lib...keystring.aspx
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
|
11.02.2015, 19:40 | #3 |
Пользователь
Регистрация: 03.04.2012
Сообщений: 20
|
А как сделать вывод символов невидимыми?
|
11.02.2015, 19:51 | #4 |
Особый статус
Участник клуба
Регистрация: 24.11.2008
Сообщений: 1,535
|
Тут гляньте: http://www.cyberforum.ru/ms-word/thread569508.html#4
И уточните назначение макроса: что на входе, что на выходе (какой текст)? А вот пример работы со скрытым текстом: http://www.cyberforum.ru/vba/thread1215022.html#3 Готовый проект с поиском в документе Word, а заодно и пример поиска через регулярку (библиотека RegExp): http://www.cyberforum.ru/vba/thread1211758.html Вообще-то это ввод стандартных символов по их коду. Вы шифруете текст, что ли?
Формула 1 (календарь чемпионата-2016): 26.11.2016 15:55 — Абу-Даби: http://ru.wikipedia.org/wiki/Гран-при_Абу-Даби — (квалификация)! Эфир: http://lion-tv.com/28-match-tv.html
Последний раз редактировалось Sasha_Smirnov; 11.02.2015 в 20:08. |
11.02.2015, 20:07 | #5 | |
Пользователь
Регистрация: 03.04.2012
Сообщений: 20
|
Цитата:
Sub Marker() With ActiveDocument.Range.Find .ClearFormatting .Replacement.ClearFormatting .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False .Execute " ", ReplaceWith:=Chr(2), Replace:=wdReplaceAll End With End Sub |
|
11.02.2015, 21:53 | #6 |
Пользователь
Регистрация: 03.04.2012
Сообщений: 20
|
В общем решил этот вопрос, всем спасибо за помощь.
Вот код, может кому пригодится: Sub Marker() With ActiveDocument.Range.Find .ClearFormatting .Replacement.ClearFormatting .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False .Replacement.Font.TextColor.RGB = RGB(255, 255, 255) .Replacement.Font.Size = 3 .Execute " ", ReplaceWith:=Chr(2), Replace:=wdReplaceAll End With End Sub |
11.02.2015, 21:54 | #7 |
Пользователь
Регистрация: 03.04.2012
Сообщений: 20
|
То есть он красит символ в белый цвет, его и не видно, то что мне и нужно.
|
14.02.2015, 03:45 | #8 |
Особый статус
Участник клуба
Регистрация: 24.11.2008
Сообщений: 1,535
|
Возможно, пригодится и это: http://www.programmersforum.ru/showt...php?t=261362#3
Ещё пляски с бубном: Макрос в ворде-что вставлено в слова!
Формула 1 (календарь чемпионата-2016): 26.11.2016 15:55 — Абу-Даби: http://ru.wikipedia.org/wiki/Гран-при_Абу-Даби — (квалификация)! Эфир: http://lion-tv.com/28-match-tv.html
Последний раз редактировалось Sasha_Smirnov; 14.02.2015 в 04:08. |
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сохранить строку при выделении и нажатии комбинацию клавиш | 4oldo | Microsoft Office Excel | 1 | 08.07.2014 20:37 |
Ввести строку символов. Найти комбинацию из двух букв по всей строке, удалить их и сдвигать строку на пустые места | AdelinaMango | Общие вопросы C/C++ | 9 | 02.04.2014 08:24 |
Нужна прога. Язык по усмотрению автора. Загрузка текстового файла, поиск и замена одних символов на другие. | Taygleb | Помощь студентам | 2 | 17.01.2012 11:41 |
Замена клавиш в чужом приложении при нажатии | Ecosasha | Win Api | 4 | 25.12.2011 14:07 |
C++ Исключить из введенного предложения все слова, содержащие заданную пользователем комбинацию из двух символов | olegraperos | Помощь студентам | 4 | 16.10.2011 22:39 |