|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
03.10.2015, 13:26 | #1 |
Новичок
Джуниор
Регистрация: 03.10.2015
Сообщений: 1
|
Автозамена в буфере обмена
Добрый день. Прошу помощи, поскольку не силен в программировании.
Есть готовый макрос в VBA Word. Что он делает: Ищет в буфере обмена требуемые совпадения и заменяет на необходимые. P.S. использую для написания своих курсовых работ. Вот код: Sub s1() txt = ClipboardText 'удаление пробела между точкой и запятой txt = Replace(txt, ". ,", ".,") 'замена двойных пробелов на одинарные txt = Replace(txt, " ", " ") txt = Replace(txt, " ", " ") txt = Replace(txt, " ", " ") 'расшифровка сокращений txt = Replace(txt, " г.", " года") txt = Replace(txt, " т.", "том") SetClipboardText (txt) End Sub Function ClipboardText() 'чтение из буфера With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") .GetFromClipboard ClipboardText = .GetText End With End Function Sub SetClipboardText(ByVal txt$) 'запись в буфер With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") .SetText txt$ .PutInClipboard End With End Sub Макрос прикреплен в файле "Автозамена". Там есть пример. Работает так: выделяете все, далее ctr+x, далее запускаете макрос, далее вставляете. Подскажите что нужно дописать, чтобы он умел заменять на текст с различным регистром (индексами). Например: "x2" заменял на "x" в квадрате (2 в верхнем индексе). Такой код пишет word при записи:Порядок действий: Жмем Home, далее Right, Shift+End, Ctrl+= (Ctrl+Shift+=). Верхний индекс: Sub Макрос1() ' ' Макрос1 Макрос ' ' Selection.HomeKey Unit:=wdLine Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.EndKey Unit:=wdLine, Extend:=wdExtend Selection.Font.Superscript = wdToggle End Sub Пример в прикрепленном документе: "Верхний индекс" Нижний индекс: Sub Макрос2() ' ' Макрос2 Макрос ' ' Selection.HomeKey Unit:=wdLine Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.EndKey Unit:=wdLine, Extend:=wdExtend Selection.Font.Subscript = wdToggle End Sub Пример в прикрепленном документе: "Нижний индекс" P.S. Поиск в списке символов - не выход, поскольку вместо "2" может быть любая цифра, буква как английского алфавита, так и русского. Возможно ли это сделать? Если да, то сколько это будет стоить? Последний раз редактировалось Егор Александрович; 03.10.2015 в 14:29. |
27.02.2016, 03:36 | #2 | |
Особый статус
Участник клуба
Регистрация: 24.11.2008
Сообщений: 1,535
|
Зачем мучить буфер!
Цитата:
Формула 1 (календарь чемпионата-2016): 26.11.2016 15:55 — Абу-Даби: http://ru.wikipedia.org/wiki/Гран-при_Абу-Даби — (квалификация)! Эфир: http://lion-tv.com/28-match-tv.html
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Капитал - это скорость обмена информацией помноженная на количество участников обмена | Alar | Свободное общение | 86 | 24.01.2014 06:20 |
PasteLink - простой макрос на VBA для Excel для вставки в ячейку гипперссылки на файл в буфере обмена. | wyfinger | Microsoft Office Excel | 4 | 22.05.2013 14:10 |
Кодировка в буфере обмена | dacorp | Общие вопросы Delphi | 3 | 14.05.2011 16:46 |
Выловить в буфере обмена даные с значением http | -=Virus=- | Помощь студентам | 13 | 20.02.2010 23:14 |
Что у тебя в буфере обмена? | Hollander | Свободное общение | 26 | 18.02.2010 16:55 |