![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 23.05.2009
Сообщений: 167
|
![]()
Как написать макрос, который бы при открытии документа выводил сообщение, что в документе содержится скрытый текст?
Здесь есть один (а может и больше - не знаю) нюанс: если в документе содержится больше 50 абзацев, то ворд видит скрытый текст. |
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 02.06.2009
Сообщений: 49
|
![]()
По-моему вопросы скрытого текста обсуждались на форуме уже неоднократно. Но если сделать скидку на то, что повторенье – мать ученья, то можно и повторить…
Самый простой путь написать - это воспользоваться макрорекодером. А для того, что бы этот макрос запускался при открытии документа, нужно ещё осознать концепцию событий Office. Что касается скрытого текста в целом, то проверить документ на наличие такового можно просмотрев все символы в цикле на свойство Hidden (поскольку и пробел может быть скрытым). Ну, например, вот так (это самый примитивный вариант кода, его нужно поместить в модуль ThisDocument): Код:
Android & Linux
|
![]() |
![]() |
![]() |
#3 |
Балуюсь кодами
Участник клуба
Регистрация: 09.01.2009
Сообщений: 1,837
|
![]()
Действительно, ошибается Word при большом количестве абзацев. Тогда можно их просто перебрать. Это займет некоторое время, но результат будет точным
Код:
Лучше день потерять — потом за пять минут долететь!©
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 02.06.2009
Сообщений: 49
|
![]()
А я думаю, что необходимость всё же есть. Ваш код не ищет скрытые непечатные знаки внутри параграфа. А иногда это может пригодится…
Android & Linux
Последний раз редактировалось CaptainNemo; 30.06.2009 в 08:10. |
![]() |
![]() |
![]() |
#5 |
Новичок
Джуниор
Регистрация: 23.05.2009
Сообщений: 167
|
![]()
Спасибо за ответы, завтра гляну.
|
![]() |
![]() |
![]() |
#6 |
Новичок
Джуниор
Регистрация: 23.05.2009
Сообщений: 167
|
![]()
Использовал макрос Витера.
Уже 2 раз помог. Хотя я свою систему разработал: это при открытии документов выводить диалоговое окно "Найти и заменить", чтобы не забывать проводить проверку на наличие скрытого текста. Но макрос, бессомненно, лучше. Хотя я сей час подумал, макрос Витера не ищет скрытый текст в колонтитулах, а с помощью диалогового окна "Найти и заменить" скрытый текст ищется в колонтитулах, что может сыграть существенную роль, поэтому, наверное, надо перейти к своему способу поиска скрытого текста. Или надо добавить в код что-то связанное с колонтитулами, их не много, поэтому, наверное, время мало займет на выполнения макроса, думаю, что сам смогу переделать этот код. Последний раз редактировалось Busine2009; 04.07.2009 в 09:23. |
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 25.09.2009
Сообщений: 10
|
![]()
Мой вопрос перекликается с вопросом, озвученным в этой теме, поэтому не стал заводить новый топик...
В документе есть скрытый текст, в котором "спрятано" ключевое слово, макрос должен найти это ключевое слово и на его месте вставить содержимое другого документа. Делаю так: Private Sub test() With ActiveDocument.Content.Find .Forward = True .ClearFormatting .MatchWholeWord = True .MatchCase = False .Wrap = wdFindContinue If .Execute(FindText:="<$insdoc$>") = True Then .Parent.Select Selection.InsertFile FileName:="c:\...\insdoc.doc", ConfirmConversions:=False, Link:=True, Attachment:=False End If End With End Sub Этот код работает если ключевое слово не скрыто, если же сделать скрытым, то код не может найти скрытый текст и соответственно вставить документ. Вопрос: Как выполнить поиск учитывая скрытый текст и найдя это место, вставить, заместо скрытого текста, содержимое другого документа? |
![]() |
![]() |
![]() |
#8 |
Балуюсь кодами
Участник клуба
Регистрация: 09.01.2009
Сообщений: 1,837
|
![]()
Попробуйте так:
Код:
Лучше день потерять — потом за пять минут долететь!©
|
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 25.09.2009
Сообщений: 10
|
![]()
Такой код не работает, я тоже так пробовал...
Временно сделал такой вариант: Код:
Возможное найдётся более красивое решение? |
![]() |
![]() |
![]() |
#10 |
Пользователь
Регистрация: 19.09.2009
Сообщений: 69
|
![]()
В начале кода вставляете
Код:
Код:
Последний раз редактировалось БуреВестник; 26.09.2009 в 09:31. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вывод сообщения без кнопок | transgd | Microsoft Office Excel | 6 | 19.06.2009 06:15 |
вывод сообщения при закрытии программы | tiger | Помощь студентам | 4 | 27.08.2008 23:31 |
Вывод сообщения на экран при выборе из списка определенного значения | MaGistR | Microsoft Office Excel | 1 | 31.01.2008 09:10 |
Нужен вывод сообщения на экран: ну типа создать файл? | Максим-2 | Общие вопросы Delphi | 7 | 28.07.2007 14:45 |
Как при скрытом чужом окне сделать его дочерние окна(сообщения) видимыми ? | Starwarrior | Win Api | 1 | 20.03.2007 09:51 |