Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 09.10.2009, 04:29   #1
Energy42
Пользователь
 
Регистрация: 25.09.2009
Сообщений: 10
Репутация: 10
По умолчанию Как достоверно определить изменения в документе?

Добрый день.

Сейчас проверяю был изменён документ или нет с помощью ActiveDocument.Saved, то есть если false, то были изменения, но это несколько не корректно, ибо true возвращается и в случае, если документ был изменён и сохранён.

Есть ли более достоверный способ узнать вносил ли пользователь изменения в документ с последнего открытия или нет?
Energy42 вне форума   Ответить с цитированием
Старый 09.10.2009, 08:29   #2
БуреВестник
Форумчанин
 
Регистрация: 19.09.2009
Сообщений: 69
Репутация: 26

icq: 581803590
По умолчанию

Напиши код, как ты определяешь, вносились изменения или нет.
Вообще, узнать с помощью кода, вносились ли изменения или нет, нельзя. Это можно сделать, сравнивая первоначальный документ и измененный документ: Сервис - Сравнить и объединить документы - галочка Чёрные строки. Если интересует только добавление или удаление текста, то убери галочку Найти форматы.

P.s. В Word очень тяжело понять при сравнении, что является сравниваемым документом, за это им минус.
БуреВестник вне форума   Ответить с цитированием
Старый 09.10.2009, 09:04   #3
Energy42
Пользователь
 
Регистрация: 25.09.2009
Сообщений: 10
Репутация: 10
По умолчанию

Цитата:
Напиши код, как ты определяешь, вносились изменения или нет.
В первом сообщении написано как я проверяю:
If ActiveDocument.Saved Then
......
End If
Как я уже сказал, это несколько не корректная проверка, но другого способа пока не знаю... Если только смотреть есть ли история изменений (undo), но как до неё добраться не знаю.

Цитата:
Это можно сделать, сравнивая первоначальный документ и измененный документ: Сервис - Сравнить и объединить документы - галочка Чёрные строки. Если интересует только добавление или удаление текста, то убери галочку Найти форматы.
Сравнение документов это конечно хороший вариант, однако проверять нужно программно, а не глазами сравнивать... Или я не правильно понял идею?
Energy42 вне форума   Ответить с цитированием
Старый 09.10.2009, 10:28   #4
БуреВестник
Форумчанин
 
Регистрация: 19.09.2009
Сообщений: 69
Репутация: 26

icq: 581803590
По умолчанию

If ActiveDocument.Saved Then
это как? Ты проверяешь документ через сеть что ли? То есть какой-то человек открыл документ, ты через сеть заходишь в этот документ, запускаешь свой макрос If ActiveDocument.Saved Then и проверяешь, не произошли ли изменения?
БуреВестник вне форума   Ответить с цитированием
Старый 19.10.2009, 04:02   #5
Energy42
Пользователь
 
Регистрация: 25.09.2009
Сообщений: 10
Репутация: 10
По умолчанию

Цитата:
Ты проверяешь документ через сеть что ли?
С чего ты взял? В документе есть макрос, в нём некая логика, в зависимости от того были изменения или нет, производятся те или иные действия.
Energy42 вне форума   Ответить с цитированием
Старый 19.10.2009, 05:07   #6
Sasha_Smirnov
Особый статус
Профессионал
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Адрес: Петербург
Сообщений: 1,533
Репутация: 691
По умолчанию

Документ (при открытии) помнит место курсора в момент сохранения, по шифт-F5.

Попробуй использовать значения полей типа
16/10/2009 14:32:00 {savedate}
и
244736 {filesize}

Поля можно вставить по контрол-F9, вписав меж скобок вышеуказанный текст.

Содержимое (выделенного) поля обновляется по F9 (либо программно).

Переключение поле/значение — по альт-F9 либо шифт-F9 — когда оно выделено.
Sasha_Smirnov вне форума   Ответить с цитированием
Старый 19.10.2009, 08:15   #7
БуреВестник
Форумчанин
 
Регистрация: 19.09.2009
Сообщений: 69
Репутация: 26

icq: 581803590
По умолчанию

А не проще ли тебе сделать следующее: открой новый документ Word, сохрани его и закрой, затем открой, набей цифру один, сохрани и закрой, затем открой его и примени свой макрос. Сразу все вопросы отпадут.
Вот ещё ссылка
http://www.programmersforum.ru/showt...F2%E5%EA%F1%F2

Последний раз редактировалось БуреВестник; 19.10.2009 в 08:28.
БуреВестник вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как преобразовать значение полей в документе в текст dima9 Microsoft Office Word 14 22.10.2011 21:28
Как узнать щелкнули ли по картинке в документе pavelXYZ Microsoft Office Word 0 14.09.2009 17:20
Как узнать количество рисунков в документе? Busine2009 Microsoft Office Word 7 15.07.2009 18:26
Как открыть папку,нажимая на ссылку в HTML-документе? Zap PHP 3 20.05.2009 00:19
как вставить ссылку на ячейку в документе Excel в Word? ruavia3 Microsoft Office Excel 3 19.03.2009 22:32


15:53.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.