![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 23.03.2010
Сообщений: 10
|
![]()
Такой вопрос. Вот есть к примеру такой текст, как ниже. Возможно ли с помощью макроса сделать так, чтобы выделив мышкой жирный текст одним нажатием кнопки макроса или сочетанием клавиш добавить закладку в документ именно с именем выделенного текста? И чтобы потом можно было выделить другой текст и также добавить в закладки, но так чтобы первая закладка не пропала. Для меня тяжело бывает когда ты выделяешь текст, потом открываешь добавить закладку, вставляешь текст, заменяешь пробелы к примеру нижним подчеркиванием и только потом нажимаешь ок. Нельзя ли это автоматизировать -- выделил текст - нажал кнопку - закладка готова?
Доиндустриальное общество. Эту стадию также принято называть традиционной или аграрной. |
![]() |
![]() |
![]() |
#2 |
Балуюсь кодами
Участник клуба
Регистрация: 09.01.2009
Сообщений: 1,837
|
![]()
Попробуй так.
Код:
Лучше день потерять — потом за пять минут долететь!©
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 23.03.2010
Сообщений: 10
|
![]()
Спасибо Вам viter.alex. А если в конце слова не пробел, а запятая закладка не создается, что нужно в коде исправить?
Последний раз редактировалось Frommerrr; 28.03.2010 в 21:09. |
![]() |
![]() |
![]() |
#4 |
Балуюсь кодами
Участник клуба
Регистрация: 09.01.2009
Сообщений: 1,837
|
![]()
Использованная мной функция Replace заменяет в строке пробелы на подчёркивание. Аналогично можно удалить и другие "неправильные" символы. Додумайте сами
Лучше день потерять — потом за пять минут долететь!©
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 23.03.2010
Сообщений: 10
|
![]()
Ув. viter.alex додумался только до этого, но после создания закладки, в тексте удаляются те символы которые я удалил, а мне нужно чтобы они вернулись в то состояние в котором были изначально. Добиться этого можно только тем, что после создания закладики два раза нажать отмену операции (Ctrl+Z). А без отмены можно как-нибудь. Помогите или скажите где копать.
Sub QuickBookmark() With Selection.Find .Text = "[,]" .Replacement.Text = "" .Execute Replace:=wdReplaceAll End With ActiveDocument.Bookmarks.Add Replace(Selection.Text, " ", "_"), _ Selection.Range Selection.Collapse direction:=wdCollapseStart End Sub Последний раз редактировалось Frommerrr; 29.03.2010 в 20:09. |
![]() |
![]() |
![]() |
#6 |
Балуюсь кодами
Участник клуба
Регистрация: 09.01.2009
Сообщений: 1,837
|
![]()
Эт вы круто взяли с поиском и заменой! Но в данном случае всё гораздо проще:
Код:
Лучше день потерять — потом за пять минут долететь!©
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 23.03.2010
Сообщений: 10
|
![]()
Термин "Макиавеллизм".
Всплыл еще один вопрос. Если удалять знаки, как Вы научили, то запинка происходит, когда нужно создать закладку из текста указанного выше. Так же не получается с длинным тире (при вставке в редактор он заменяется на дефис). Просто хочется делать закладку из любого текста. Это возможно в принципе? С уважением. Sub QuickBookmark() Dim sBmName As String 'Заменяем пробелы на подчёркивания sBmName = Replace(Selection.Text, " ", "_") 'Удаляем запятые sBmName = Replace(sBmName, ",", "") sBmName = Replace(sBmName, "-", "") sBmName = Replace(sBmName, ".", "") sBmName = Replace(sBmName, ";", "") sBmName = Replace(sBmName, ":", "") sBmName = Replace(sBmName, "?", "") sBmName = Replace(sBmName, "!", "") sBmName = Replace(sBmName, "(", "") sBmName = Replace(sBmName, ")", "") ActiveDocument.Bookmarks.Add sBmName, Selection.Range End Sub |
![]() |
![]() |
![]() |
#8 |
Балуюсь кодами
Участник клуба
Регистрация: 09.01.2009
Сообщений: 1,837
|
![]()
Возможно. Кавычку нужно записать так:
Код:
Код:
Код:
Лучше день потерять — потом за пять минут долететь!©
Последний раз редактировалось viter.alex; 30.03.2010 в 00:56. Причина: Заменил ChrW на Chr |
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 23.03.2010
Сообщений: 10
|
![]()
Странно - с кавычками получается, а с длинным тире никак. Делал как научили.
Последний раз редактировалось Frommerrr; 29.03.2010 в 23:53. |
![]() |
![]() |
![]() |
#10 |
Балуюсь кодами
Участник клуба
Регистрация: 09.01.2009
Сообщений: 1,837
|
![]()
Выдели это длинное тире и запусти такой макрос:
Код:
Добавлено позже Моя вина. Вместо ChrW нужно использовать Chr. В примере внёс исправления
Лучше день потерять — потом за пять минут долететь!©
Последний раз редактировалось viter.alex; 30.03.2010 в 00:56. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Быстрое решение учебных задач | prog-f1 | Фриланс | 9 | 26.02.2011 10:29 |
Быстрое форматирование диска | Anders | Безопасность, Шифрование | 9 | 25.04.2010 19:04 |
Быстрое удаление дублирующихся слов :). | Utkin | Общие вопросы Delphi | 21 | 01.02.2010 08:25 |
Быстрое преобразование Фурье (комментарии). | brendog | Общие вопросы C/C++ | 2 | 21.07.2009 01:15 |