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

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

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.05.2011, 10:33   #1
caute
Форумчанин
 
Регистрация: 27.10.2009
Сообщений: 277
По умолчанию макрос для замены кавычек

Требуется заменить угловые кавычки «» на фигурные “”.
Трудность в том, что в поле "Заменить на" Word 2003 игнорирует разницу между фигурными и угловыми кавычками. Приходится копировать фигурную в буфер обмена и использовать ^c.
А нельзя ли написать макрос замены кавычек?
caute вне форума Ответить с цитированием
Старый 22.05.2011, 10:44   #2
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

Можно.

Там ещё не забудьте отключить «Заменять при вводе» в Автоформате.

А то вообще (когда я такое себе делал) ничего не понятно, что происходит.

Вот ближайшее что нашёл (поиск в цикле с помощью Find): http://programmersforum.ru/showthread.php?t=146988

(Темы внизу страницы смотрел — вообще мимо!)
Изображения
Тип файла: jpg ВчёмФишка.jpg (35.5 Кб, 127 просмотров)

Последний раз редактировалось Sasha_Smirnov; 22.05.2011 в 11:07. Причина: искал окно Автозамена в своём ворде (уж не знаю каком — 2007-м?!).
Sasha_Smirnov вне форума Ответить с цитированием
Старый 22.05.2011, 11:08   #3
caute
Форумчанин
 
Регистрация: 27.10.2009
Сообщений: 277
По умолчанию

Может еще кто-то поможет чем-то, кроме советов из серии "Учи VBA"?
Если в лом писать целый макрос, укажите просто, как вписать фигурные кавычки в строку
.Replacement.Text = ""

(в юникоде “” числятся как 201C и 201D)

Последний раз редактировалось caute; 22.05.2011 в 11:56.
caute вне форума Ответить с цитированием
Старый 22.05.2011, 14:36   #4
Вождь
Форумчанин
 
Аватар для Вождь
 
Регистрация: 29.09.2008
Сообщений: 378
По умолчанию

Вставьте нужные кавычки в документ (можно через Вставка > Символ), затем скопируйте их в диалог поиска и замены через буфер (Ctrl+C и Ctrl+V).
Макросы на заказ и готовый пакет - http://mtdmacro.ru/
Вождь вне форума Ответить с цитированием
Старый 22.05.2011, 15:58   #5
Aent
Форумчанин
 
Аватар для Aent
 
Регистрация: 17.07.2009
Сообщений: 519
По умолчанию

Цитата:
как вписать фигурные кавычки в строку .Replacement.Text =
Попробуйте указать ChrW(&H201C) и ChrW(&H201D).
Aent вне форума Ответить с цитированием
Старый 22.05.2011, 16:50   #6
caute
Форумчанин
 
Регистрация: 27.10.2009
Сообщений: 277
По умолчанию

Цитата:
скопируйте их в диалог поиска и замены через буфер
повторюсь: поле "Заменить на" Word 2003 в упор не видит разницу между фигурными и угловыми кавычками, спасает только ^c.
Так и маюсь годами. А тут несколько таких доков подвернулось - решил поспрошать знатоков.

Цитата:
Попробуйте указать ChrW(&H201C) и ChrW(&H201D).
Word 2003 не понимает такого, вставляет как обычный текст
Возможно, желаемый макрос замены кавычек просто невозможен...
caute вне форума Ответить с цитированием
Старый 22.05.2011, 17:48   #7
Вождь
Форумчанин
 
Аватар для Вождь
 
Регистрация: 29.09.2008
Сообщений: 378
По умолчанию

Цитата:
Сообщение от caute Посмотреть сообщение
...поле "Заменить на" Word 2003 в упор не видит разницу...
Видит, видит. Как уже советовали, надо пред заменой оключить автозамену: Сервис > Параметры автозамены > Автоформат при вводе > прямые кавычки парными.
Макросы на заказ и готовый пакет - http://mtdmacro.ru/
Вождь вне форума Ответить с цитированием
Старый 22.05.2011, 19:16   #8
caute
Форумчанин
 
Регистрация: 27.10.2009
Сообщений: 277
По умолчанию Спасибо всем!

Действительно, сработало - надо же.
Жаль, нельзя включить в макрос команду вкл-откл параметров автозамены
caute вне форума Ответить с цитированием
Старый 22.05.2011, 19:29   #9
Вождь
Форумчанин
 
Аватар для Вождь
 
Регистрация: 29.09.2008
Сообщений: 378
По умолчанию

Цитата:
Сообщение от caute Посмотреть сообщение
...включить в макрос команду вкл-откл параметров автозамены...
Options.AutoFormatAsYouTypeReplaceQ uotes = False
Учите VBA
Макросы на заказ и готовый пакет - http://mtdmacro.ru/
Вождь вне форума Ответить с цитированием
Старый 22.05.2011, 19:35   #10
caute
Форумчанин
 
Регистрация: 27.10.2009
Сообщений: 277
По умолчанию

ну а шо ж Вы сразу не сказали! (я в глубине души надеялся)
VBA мне нужен раз в пятилетку, а то б я погрыз его

Может, кому еще пригодится.
Код:
Sub Угловые_кавычки_заменить_на_фигурные()
    Options.AutoFormatAsYouTypeReplaceQuotes = False
    With Selection.Find
        .Text = "«"
        .Replacement.Text = "“"
    Selection.Find.Execute Replace:=wdReplaceAll
        .Text = "»"
        .Replacement.Text = "”"
    Selection.Find.Execute Replace:=wdReplaceAll
    End With
    Options.AutoFormatAsYouTypeReplaceQuotes = True
End Sub

Последний раз редактировалось caute; 23.05.2011 в 09:14.
caute вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос замены в word Foma-78 Microsoft Office Word 3 19.06.2012 05:33
Макрос на замены чисел буквами Breaknoise Microsoft Office Excel 16 24.02.2011 13:16
Макрос пакетной замены swan1976 Microsoft Office Word 2 26.12.2009 17:48
Макрос для поиска и замены слов на слова с верхним подчеркиванием salvafion Microsoft Office Word 4 07.09.2009 19:14
Макрос для поиска/замены Davidoff Microsoft Office Excel 1 20.01.2007 16:01