Домашняя страница Undo Do Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Закрыть документ Word при отсутствии активности - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, китин  
Закрыть документ Word при отсутствии активности
СЭР Дата: Суббота, 14.02.2015, 01:29 | Сообщение № 1
Группа: Гости
Всем ЗДРАВСТВУЙТЕ
Подскажите пожалуйста код при выполнении которого будет выполняться следующие условия
Сохранить и Закрыть документ Word при отсутствии активности в нем продолжительное время
 
Ответить
СообщениеВсем ЗДРАВСТВУЙТЕ
Подскажите пожалуйста код при выполнении которого будет выполняться следующие условия
Сохранить и Закрыть документ Word при отсутствии активности в нем продолжительное время

Автор - СЭР
Дата добавления - 14.02.2015 в 01:29
Serge_007 Дата: Суббота, 14.02.2015, 09:42 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Боюсь что такой код написать не получится...


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеБоюсь что такой код написать не получится...

Автор - Serge_007
Дата добавления - 14.02.2015 в 09:42
СЭР Дата: Суббота, 14.02.2015, 14:23 | Сообщение № 3
Группа: Гости
а Коды в Excel и в Word сильно отличаются?
 
Ответить
Сообщениеа Коды в Excel и в Word сильно отличаются?

Автор - СЭР
Дата добавления - 14.02.2015 в 14:23
RAN Дата: Суббота, 14.02.2015, 15:55 | Сообщение № 4
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Нет
Да
И то, и другое верно.


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеНет
Да
И то, и другое верно.

Автор - RAN
Дата добавления - 14.02.2015 в 15:55
anvg Дата: Вторник, 17.02.2015, 05:41 | Сообщение № 5
Группа: Друзья
Ранг: Ветеран
Сообщений: 581
Репутация: 271 ±
Замечаний: 0% ±

2016, 365
Доброе время суток
Частичное решение, на мой взгляд, возможно. В 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
Дата добавления - 17.02.2015 в 05:41
СЭР Дата: Вторник, 17.02.2015, 15:19 | Сообщение № 6
Группа: Гости
Меня такое частичное решение вполне устраивает :)
А как будет выглядеть это код на проверку контрольной суммы по ThisDocument.Range.XML?
 
Ответить
СообщениеМеня такое частичное решение вполне устраивает :)
А как будет выглядеть это код на проверку контрольной суммы по ThisDocument.Range.XML?

Автор - СЭР
Дата добавления - 17.02.2015 в 15:19
anvg Дата: Среда, 18.02.2015, 03:07 | Сообщение № 7
Группа: Друзья
Ранг: Ветеран
Сообщений: 581
Репутация: 271 ±
Замечаний: 0% ±

2016, 365
Цитата
А как будет выглядеть это код на проверку контрольной суммы по ThisDocument.Range.XML

Так чего проще? алгоритм подсчета контрольной суммы vba
Сразу даёт несколько вариантов - выбирайте на вкус. Может лучше тот, что sql.ru - нет обращений к api. Ну, и поаккуратнее с xml. Если это будет у вас файл - отчёт страниц этак на 700, да с картинками - долго ждать, возможно придётся.
А чем плох вариант с числом символов в документе? Вы хотите отслеживать и изменение форматирования?


Сообщение отредактировал anvg - Среда, 18.02.2015, 03:08
 
Ответить
Сообщение
Цитата
А как будет выглядеть это код на проверку контрольной суммы по ThisDocument.Range.XML

Так чего проще? алгоритм подсчета контрольной суммы vba
Сразу даёт несколько вариантов - выбирайте на вкус. Может лучше тот, что sql.ru - нет обращений к api. Ну, и поаккуратнее с xml. Если это будет у вас файл - отчёт страниц этак на 700, да с картинками - долго ждать, возможно придётся.
А чем плох вариант с числом символов в документе? Вы хотите отслеживать и изменение форматирования?

Автор - anvg
Дата добавления - 18.02.2015 в 03:07
СЭР Дата: Четверг, 19.02.2015, 17:54 | Сообщение № 8
Группа: Гости
Вариант с числом символов в документе меня тоже устраивает. Но Моих знаний не хватает чтобы составить эту проверку.
В google по "алгоритм подсчета контрольной суммы vba" нашел подсчет контрольной суммы, но ее также не могу приладить.
Дальше закрытия по таймера пока продвинуться не получается. :(
Помогите пожалуйста.
 
Ответить
СообщениеВариант с числом символов в документе меня тоже устраивает. Но Моих знаний не хватает чтобы составить эту проверку.
В google по "алгоритм подсчета контрольной суммы vba" нашел подсчет контрольной суммы, но ее также не могу приладить.
Дальше закрытия по таймера пока продвинуться не получается. :(
Помогите пожалуйста.

Автор - СЭР
Дата добавления - 19.02.2015 в 17:54
СЭР Дата: Четверг, 12.03.2015, 09:32 | Сообщение № 9
Группа: Гости
понял, что подсчет символов с учетом пробелов будет выглядеть так:
myRange.ComputeStatistics(Statistic:=wdStatisticCharactersWithSpaces),
а как организовать проверку изменения этого числа, понять не могу. :(
 
Ответить
Сообщениепонял, что подсчет символов с учетом пробелов будет выглядеть так:
myRange.ComputeStatistics(Statistic:=wdStatisticCharactersWithSpaces),
а как организовать проверку изменения этого числа, понять не могу. :(

Автор - СЭР
Дата добавления - 12.03.2015 в 09:32
anvg Дата: Пятница, 13.03.2015, 04:36 | Сообщение № 10
Группа: Друзья
Ранг: Ветеран
Сообщений: 581
Репутация: 271 ±
Замечаний: 0% ±

2016, 365
Доброе время суток
Цитата
а как организовать проверку изменения этого числа, понять не могу

И где пример вашего творчества? Без него, что у вас не так никто понять не сможет. Попробуйте как-то так
Успехов.
К сообщению приложен файл: OnTime.docm (20.9 Kb)
 
Ответить
СообщениеДоброе время суток
Цитата
а как организовать проверку изменения этого числа, понять не могу

И где пример вашего творчества? Без него, что у вас не так никто понять не сможет. Попробуйте как-то так
Успехов.

Автор - anvg
Дата добавления - 13.03.2015 в 04:36
СЭР Дата: Пятница, 13.03.2015, 23:23 | Сообщение № 11
Группа: Гости
Доброе время суток
Спасибо anvg за отзывчивость
Ваш код работает, но при переходе в другой документ перестает.
Существует ли возможность его модернизации и устранение данного недостатка?
 
Ответить
СообщениеДоброе время суток
Спасибо anvg за отзывчивость
Ваш код работает, но при переходе в другой документ перестает.
Существует ли возможность его модернизации и устранение данного недостатка?

Автор - СЭР
Дата добавления - 13.03.2015 в 23:23
anvg Дата: Вторник, 17.03.2015, 05:37 | Сообщение № 12
Группа: Друзья
Ранг: Ветеран
Сообщений: 581
Репутация: 271 ±
Замечаний: 0% ±

2016, 365
Доброе время суток
Цитата
но при переходе в другой документ перестает.

Честно говоря, из ваших сообщений выше ни где не следует, что предполагается отслеживание состояния работы с другими документами. Вам потребуется внести код в каждый документ, плюс поменять код таймера на версию на WinAPI, поскольку Application.OnTime не позволяет задавать несколько таймеров.
Либо один из документов настроить на обработку событий приложения DocumentOpen для добавления его в коллекцию, по которой будет отслеживаться с какими документами работать, а по закрытию (если число символов в документе коллекции не изменилось) на событие DocumentBeforeClose удалять закрываемый документ из коллекции.
Плюс подумать что делать с вновь создаваемыми документами.
Успехов.
P. S. Поскольку никакого кода вы пока не представили, полагаю, что у вас проблемы с созданием кода, может вам лучше сразу сюда обратиться?
 
Ответить
СообщениеДоброе время суток
Цитата
но при переходе в другой документ перестает.

Честно говоря, из ваших сообщений выше ни где не следует, что предполагается отслеживание состояния работы с другими документами. Вам потребуется внести код в каждый документ, плюс поменять код таймера на версию на WinAPI, поскольку Application.OnTime не позволяет задавать несколько таймеров.
Либо один из документов настроить на обработку событий приложения DocumentOpen для добавления его в коллекцию, по которой будет отслеживаться с какими документами работать, а по закрытию (если число символов в документе коллекции не изменилось) на событие DocumentBeforeClose удалять закрываемый документ из коллекции.
Плюс подумать что делать с вновь создаваемыми документами.
Успехов.
P. S. Поскольку никакого кода вы пока не представили, полагаю, что у вас проблемы с созданием кода, может вам лучше сразу сюда обратиться?

Автор - anvg
Дата добавления - 17.03.2015 в 05:37
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!