Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.02.2015, 10:14   #1
ArchiCurtis
Пользователь
 
Регистрация: 03.04.2012
Сообщений: 20
Восклицание Замена символов на другие или комбинацию клавиш на VBA

Добрый день друзья! Нужно на VBA написать макрос для Ворда, чтобы можно было менять пробелы или символы на другие символы или вместо символа вставлял некую комбинацию клавиш, как будто пользователь сам нажимал бы. При нажатии клавиш, с зажатием Alt появляются не стандартные символы, которые мне нужны. Так же нужно, заменяющие символы были невидимые. Вот написал чучуть, дальше не знаю как:
Код:
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:=" ", Replace:=wdReplaceAll
End With
End Sub

Последний раз редактировалось Stilet; 11.02.2015 в 19:53.
ArchiCurtis вне форума Ответить с цитированием
Старый 11.02.2015, 10:31   #2
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 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"
challengerr вне форума Ответить с цитированием
Старый 11.02.2015, 19:40   #3
ArchiCurtis
Пользователь
 
Регистрация: 03.04.2012
Сообщений: 20
По умолчанию

А как сделать вывод символов невидимыми?
ArchiCurtis вне форума Ответить с цитированием
Старый 11.02.2015, 19:51   #4
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 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
Цитата:
Сообщение от ArchiCurtis Посмотреть сообщение
При нажатии клавиш, с зажатием Alt появляются не стандартные символы, которые мне нужны.
Вообще-то это ввод стандартных символов по их коду. Вы шифруете текст, что ли?

Последний раз редактировалось Sasha_Smirnov; 11.02.2015 в 20:08.
Sasha_Smirnov вне форума Ответить с цитированием
Старый 11.02.2015, 20:07   #5
ArchiCurtis
Пользователь
 
Регистрация: 03.04.2012
Сообщений: 20
По умолчанию

Цитата:
Сообщение от Sasha_Smirnov Посмотреть сообщение
Вообще-то это ввод стандартных символов по их коду. Вы шифруете текст, что ли?
Спасибо. Хочу написать макрос для обхода Антиплагиат. Например, вместо пробелов вставлялись не видимые не стандартные символы. Chr(2) вставляет не стандартные символы, теперь надо их скрыть.

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
ArchiCurtis вне форума Ответить с цитированием
Старый 11.02.2015, 21:53   #6
ArchiCurtis
Пользователь
 
Регистрация: 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
ArchiCurtis вне форума Ответить с цитированием
Старый 11.02.2015, 21:54   #7
ArchiCurtis
Пользователь
 
Регистрация: 03.04.2012
Сообщений: 20
По умолчанию

То есть он красит символ в белый цвет, его и не видно, то что мне и нужно.
ArchiCurtis вне форума Ответить с цитированием
Старый 14.02.2015, 03:45   #8
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

Возможно, пригодится и это: http://www.programmersforum.ru/showt...php?t=261362#3

Ещё пляски с бубном: Макрос в ворде-что вставлено в слова!

Последний раз редактировалось Sasha_Smirnov; 14.02.2015 в 04:08.
Sasha_Smirnov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сохранить строку при выделении и нажатии комбинацию клавиш 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