Всем ЗДРАВСТВУЙТЕ Подскажите пожалуйста код при выполнении которого будет выполняться следующие условия Сохранить и Закрыть документ Word при отсутствии активности в нем продолжительное время
Всем ЗДРАВСТВУЙТЕ Подскажите пожалуйста код при выполнении которого будет выполняться следующие условия Сохранить и Закрыть документ Word при отсутствии активности в нем продолжительное времяСЭР
Доброе время суток Частичное решение, на мой взгляд, возможно. В Word 2010 и, видимо, новее есть Application.OnTime - запуск макроса по расписанию. В этом макросе проверяем изменение, например, числа символов ThisDocument.Range.Characters.Count с предыдущего состояния (открытия, срабатывания макроса). Соответственно, если число символов за интервал времени изменилось, то задать новое расписание, если нет, то закрыть ThisDocument.Close False. Можно и более полно. Вычислять контрольную сумму по ThisDocument.Range.XML, чтобы более полно отслеживать изменения. Решение частично, так за время от одного срабатывания макроса до другого, пользователь может, например, написать предложение, а затем его удалить. Формально изменений не будет.
Доброе время суток Частичное решение, на мой взгляд, возможно. В Word 2010 и, видимо, новее есть Application.OnTime - запуск макроса по расписанию. В этом макросе проверяем изменение, например, числа символов ThisDocument.Range.Characters.Count с предыдущего состояния (открытия, срабатывания макроса). Соответственно, если число символов за интервал времени изменилось, то задать новое расписание, если нет, то закрыть ThisDocument.Close False. Можно и более полно. Вычислять контрольную сумму по ThisDocument.Range.XML, чтобы более полно отслеживать изменения. Решение частично, так за время от одного срабатывания макроса до другого, пользователь может, например, написать предложение, а затем его удалить. Формально изменений не будет.anvg
А как будет выглядеть это код на проверку контрольной суммы по ThisDocument.Range.XML
Так чего проще? алгоритм подсчета контрольной суммы vba Сразу даёт несколько вариантов - выбирайте на вкус. Может лучше тот, что sql.ru - нет обращений к api. Ну, и поаккуратнее с xml. Если это будет у вас файл - отчёт страниц этак на 700, да с картинками - долго ждать, возможно придётся. А чем плох вариант с числом символов в документе? Вы хотите отслеживать и изменение форматирования?
Цитата
А как будет выглядеть это код на проверку контрольной суммы по ThisDocument.Range.XML
Так чего проще? алгоритм подсчета контрольной суммы vba Сразу даёт несколько вариантов - выбирайте на вкус. Может лучше тот, что sql.ru - нет обращений к api. Ну, и поаккуратнее с xml. Если это будет у вас файл - отчёт страниц этак на 700, да с картинками - долго ждать, возможно придётся. А чем плох вариант с числом символов в документе? Вы хотите отслеживать и изменение форматирования?anvg
Сообщение отредактировал anvg - Среда, 18.02.2015, 03:08
Вариант с числом символов в документе меня тоже устраивает. Но Моих знаний не хватает чтобы составить эту проверку. В google по "алгоритм подсчета контрольной суммы vba" нашел подсчет контрольной суммы, но ее также не могу приладить. Дальше закрытия по таймера пока продвинуться не получается. Помогите пожалуйста.
Вариант с числом символов в документе меня тоже устраивает. Но Моих знаний не хватает чтобы составить эту проверку. В google по "алгоритм подсчета контрольной суммы vba" нашел подсчет контрольной суммы, но ее также не могу приладить. Дальше закрытия по таймера пока продвинуться не получается. Помогите пожалуйста.СЭР
понял, что подсчет символов с учетом пробелов будет выглядеть так: myRange.ComputeStatistics(Statistic:=wdStatisticCharactersWithSpaces), а как организовать проверку изменения этого числа, понять не могу.
понял, что подсчет символов с учетом пробелов будет выглядеть так: myRange.ComputeStatistics(Statistic:=wdStatisticCharactersWithSpaces), а как организовать проверку изменения этого числа, понять не могу. СЭР
Доброе время суток Спасибо anvg за отзывчивость Ваш код работает, но при переходе в другой документ перестает. Существует ли возможность его модернизации и устранение данного недостатка?
Доброе время суток Спасибо anvg за отзывчивость Ваш код работает, но при переходе в другой документ перестает. Существует ли возможность его модернизации и устранение данного недостатка?СЭР
Честно говоря, из ваших сообщений выше ни где не следует, что предполагается отслеживание состояния работы с другими документами. Вам потребуется внести код в каждый документ, плюс поменять код таймера на версию на WinAPI, поскольку Application.OnTime не позволяет задавать несколько таймеров. Либо один из документов настроить на обработку событий приложения DocumentOpen для добавления его в коллекцию, по которой будет отслеживаться с какими документами работать, а по закрытию (если число символов в документе коллекции не изменилось) на событие DocumentBeforeClose удалять закрываемый документ из коллекции. Плюс подумать что делать с вновь создаваемыми документами. Успехов. P. S. Поскольку никакого кода вы пока не представили, полагаю, что у вас проблемы с созданием кода, может вам лучше сразу сюда обратиться?
Доброе время суток
Цитата
но при переходе в другой документ перестает.
Честно говоря, из ваших сообщений выше ни где не следует, что предполагается отслеживание состояния работы с другими документами. Вам потребуется внести код в каждый документ, плюс поменять код таймера на версию на WinAPI, поскольку Application.OnTime не позволяет задавать несколько таймеров. Либо один из документов настроить на обработку событий приложения DocumentOpen для добавления его в коллекцию, по которой будет отслеживаться с какими документами работать, а по закрытию (если число символов в документе коллекции не изменилось) на событие DocumentBeforeClose удалять закрываемый документ из коллекции. Плюс подумать что делать с вновь создаваемыми документами. Успехов. P. S. Поскольку никакого кода вы пока не представили, полагаю, что у вас проблемы с созданием кода, может вам лучше сразу сюда обратиться?anvg