Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Close и Save документа Word  (Прочитано 25445 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Ципихович Эндрю
Помогающий

ru
Offline Offline

« : 03-04-2011 04:20 » 

Close и Save документа Word, не могу в них врубиться
'сохраняет документ не спрашивая об этом
'Dialogs(wdDialogFileSaveAs).Execute
а как будет не сохранять документ не спрашивая об этом
поясню, предполагается, что пользователь в документе своими руками ничего делать не будет и закрывая документ ему и нужна инструкция не сохранять документ не спрашивая об этом. Затруднения вызывает то что в этом документе есть Комбобокс и по открытию документа в него прога сама закидывала строки
Спасибо
Записан
HandKot
Молодой специалист

ru
Offline Offline

« Ответ #1 : 04-04-2011 04:27 » 

так кнопочкой F1 пользоваться и не научились ? Улыбаюсь

Код:
Word Developer Reference
Document.Close Method
Closes the specified document.
Syntax

expression.Close(SaveChanges, OriginalFormat, RouteDocument)

expression   Required. A variable that represents a Document object.

Parameters

Name Required/Optional Data Type Description
SaveChanges Optional Variant Specifies the save action for the document. Can be one of the following WdSaveOptions constants: wdDoNotSaveChanges, wdPromptToSaveChanges, or wdSaveChanges.
OriginalFormat Optional Variant Specifies the save format for the document. Can be one of the following WdOriginalFormat constants: wdOriginalDocumentFormat, wdPromptUser, or wdWordDocument.
RouteDocument Optional Variant True to route the document to the next recipient. If the document does not have a routing slip attached, this argument is ignored.


Вас должен заинтересовать параметр SaveChanges  со сзначением wdDoNotSaveChanges
Записан

I Have Nine Lives You Have One Only
THINK!
Ципихович Эндрю
Помогающий

ru
Offline Offline

« Ответ #2 : 04-04-2011 17:38 » 

Затруднения вызывает то что в этом документе есть Комбобокс и по открытию документа в него прога сама закидывала строки. Тогда как я пытаюсь закрыть файл кнопка Undo не активна, серого цвета, поэтому строка
If ActiveDocument.Undo = False Then самое точное условие.
код

If ActiveDocument.Undo = False Then ActiveDocument.Close wdDoNotSaveChanges
находится внутри шаблона в прцедуре АutoClose 
Получаю Ошибка команды и запрос на сохранение, а мне не нужно ни того ни другого
Не понял
Записан
HandKot
Молодой специалист

ru
Offline Offline

« Ответ #3 : 05-04-2011 04:45 » 

нифига не понял.
Зачем Вам проверять условие
Код:
ActiveDocument.Undo = False
?
если просто вызвать
Код:
ActiveDocument.Close wdDoNotSaveChanges
что будет?
И еще, где находится макрос? Почему используете ActiveDocument?
Записан

I Have Nine Lives You Have One Only
THINK!
Ципихович Эндрю
Помогающий

ru
Offline Offline

« Ответ #4 : 05-04-2011 11:06 » 

поясню еще раз
Есть шаблон, например файл с именем 1.дот
В проводнике курсором выделяю этот файл
Выбираю Открыть
Ничего не делаю
Пытаюсь закрыть мне сообщение сохранить ли изменение
Мне оно не нужно, потому как прога должна проверить делал ли пользователь изменения
то есть тогда я в АutoClose этого документа пишу проверку If ActiveDocument.Undo = False и это самое точное условие
Потому что, когда я пытаюсь закрыть шаблон стрелочка Ундо серого цвета
А всю работу делал по открытию файла не пользователь, а прога
Вы советуете
если просто вызвать
Код:
ActiveDocument.Close wdDoNotSaveChanges
тогда получаю Ошибка команды и запрос на сохранение, а мне не нужно ни того ни другого



Добавлено через 5 часов, 24 минуты и 19 секунд:
по большому счёту эта строка:
If ActiveDocument.Undo = False Then Dialogs(wdDialogFileSaveAs).Execute
мне как бальзам на душу за исключением того, что если бы не сохранялся шаблон с текущим врменем
« Последнее редактирование: 05-04-2011 16:31 от Ципихович Эндрю » Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #5 : 05-04-2011 17:50 » 

Когда ты открываешь в шаблон (dot-файл), Word на базе него создаёт новый документ (doc-файл). Естественно, что документ требует сохранения.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Ципихович Эндрю
Помогающий

ru
Offline Offline

« Ответ #6 : 06-04-2011 04:31 » 

>Когда ты открываешь в шаблон (dot-файл), Word на базе него создаёт новый документ (doc-файл). Естественно, что >документ требует сохранения.
Да уж нет товарищ, то что Вы сказали, открыли Ворд с панели Пуск или с ярлыка на рабочем столе или из Пуск прграммы, ничего н делая закрываем и что спросит о сохранении? Нет.
А спрашивает о сохранении потому что прога работала
Повторюсь еще раз с пунктами:
Есть шаблон, например файл с именем 1.дот
1. В проводнике курсором выделяю этот файл
2. Выбираю Открыть
3. Ничего не делаю
4. Пытаюсь закрыть мне сообщение сохранить ли изменение
Какой из этих пунктов свидетельствует, что
на базе него, шаблона создаёт новый документ (doc-файл)
Не понял?
Записан
HandKot
Молодой специалист

ru
Offline Offline

« Ответ #7 : 06-04-2011 05:17 » 

как это не странно, но
Есть шаблон, например файл с именем 1.дот
1. В проводнике курсором выделяю этот файл
2. Выбираю Открыть
3. делаю изменениня
4. пишу ThisDocument.Close wdDoNotSaveChanges
и шаблон просто и красиво закрывается ничего не спрашивая
Записан

I Have Nine Lives You Have One Only
THINK!
Ципихович Эндрю
Помогающий

ru
Offline Offline

« Ответ #8 : 06-04-2011 05:55 » 

3 пункт
>3. делаю изменениня
Зачем так сделали??
Может
>шаблон просто и красиво закрывается ничего не спрашивая
это для кого-то благо но мне и даром не нужно
Всё же сделайте 3. не делаю изменениня
И не забывайте про прогу которая сидит в АвтоОпене
Записан
HandKot
Молодой специалист

ru
Offline Offline

« Ответ #9 : 06-04-2011 06:36 » 

я это к тому, что не важно были изменения или нет, приведенный код просто закроет открытый документ
а про прогу в автоопен ничего не было сказано
что за прога и что она делает?

Добавлено через 1 минуту и 2 секунды:
как минимум, убеоите пргу из автоопен
и попробуйте закрыть приведенным кодом, если срабоатет (а так оно и будет), то проблема в проге, прописанной в автоопен

смотрите что она делает
« Последнее редактирование: 06-04-2011 06:37 от HandKot » Записан

I Have Nine Lives You Have One Only
THINK!
Ципихович Эндрю
Помогающий

ru
Offline Offline

« Ответ #10 : 06-04-2011 07:02 » 

как не было сказано в условии, цитата из условия:
Затруднения вызывает то что в этом документе есть Комбобокс и по открытию документа в него прога сама закидывала строки
Вот и сказано, если убрать прогу, то никакие коды не нужно, да конечно проблема в проге, она лишь в шабон, в имеющийся комбобокс закидывает строки, но когда я пытаюсь закрыть шаблон, кнопочка Ундо не активна, всё верно, я ведь ничего не менял. Раз ничего не менял, значит пусть закрывается, ничего не спрашивает и дата изменения должна осаться та же, а не текущая. Как это сделать???

Добавлено через 1 минуту и 34 секунды:
на язык ВБА перевести можно
закрыть документ без изменения и не спрашивать о необходимости их делать?Не понял
« Последнее редактирование: 06-04-2011 07:04 от Ципихович Эндрю » Записан
HandKot
Молодой специалист

ru
Offline Offline

« Ответ #11 : 06-04-2011 07:31 » 

на язык ВБА перевести можно
закрыть документ без изменения и не спрашивать о необходимости их делать?Не понял

ужЁ сто раз говорилось
Код:
ThisDocument.Close wdDoNotSaveChanges
Записан

I Have Nine Lives You Have One Only
THINK!
Ципихович Эндрю
Помогающий

ru
Offline Offline

« Ответ #12 : 06-04-2011 07:38 » 

ThisDocument.Close wdDoNotSaveChanges - спрашивать не спрашивает, а временем изменения делает текущее время, мол я только что менял, а что я менял, просто посмотрел

Добавлено через 20 минут и 32 секунды:
сообщение-Ответ #14 : Сегодня в 08:38
Прошу не читать
Вот код:
Sub AutoClose()
Код:
1If ActiveDocument.Undo = False And Len(ActiveDocument.Path) = 0 Then
2Dialogs(wdDialogFileSaveAs).Execute
3Else
4ThisDocument.Close wdDoNotSaveChanges
5End If
End Sub
5 строк
так вот делая 4 строку у меня сообщение Ошибка команды и спрашивает о сохранении
ранее я думал, что строка 2 - золото, на самом деле оказывается файлы сохранялись в папке мои документы, то есть проблем стало вдвоё больше

Одним словом есть юзер, у него есть шаблон 1.дот нужно как бы он его не открыл
или
1. В проводнике курсором выделяю этот файл
2. Выбираю Открыть
или
1. В проводнике курсором выделяю этот файл
2. Выбираю Создать
и ничего не делая
его закрыл
чтобы его не спрашивало ни о чём и не пересохранялось с текущей датой

Ну это же нормально, раз он ничего не делал, зачем его спрашивать, зачем пересохранятьЭто возможно, каков скрипт, подскажите пожалуйста

« Последнее редактирование: 06-04-2011 07:58 от Ципихович Эндрю » Записан
HandKot
Молодой специалист

ru
Offline Offline

« Ответ #13 : 06-04-2011 09:30 » 

ну наконец-то, разроджились  Ага
1. Метода AutoClose в Ворде нет
2.
Код:
ActiveDocument.Undo = False And Len(ActiveDocument.Path)
ИМХО полная лажа
  у документа есть хооршее св-во Saved, которое и показывает, что был изменен документ или не был

Учитывая выше сказанное и " в имеющийся комбобокс закидывает строки", что гарантирует  установку св-ва Saved в ЛОЖЬ, которое инициализирует диалог о сохранении документа, нужно в процедуре загрузки комбо, сбросить это св-во в ИСТИНУ, и ничего более

Код:
Private Sub Document_Open()
    'здесь идет заполение комбо
    Dim MyCombo As combo
    MyCombo.AddItem ...
    
    
    'СТАВИМ ФЛАГ, ЧТО ИЗМЕНЕНИЙ НЕ БЫЛО
    ThisDocument.Saved = True
    
End Sub

и не нужно придумывать велосипед

Если я не прав, поправьте меня
« Последнее редактирование: 06-04-2011 09:38 от HandKot » Записан

I Have Nine Lives You Have One Only
THINK!
Ципихович Эндрю
Помогающий

ru
Offline Offline

« Ответ #14 : 08-04-2011 06:19 » 

ответ я видел ещё позавчера, но как говорится боялся спугнуть
так вот, не пойму почему В говорите, что Метода AutoClose в Ворде нет
Назовите его как хотите, но макрос AutoClose() у меня есть и работает он по закрытию документа
на сегодняшний день в его коде одна строка: ThisDocument.Saved = True, которую Вы мне посоветовали
так вот открывая файл
или
1. В проводнике курсором выделяю этот файл
2. Выбираю Открыть
или
1. В проводнике курсором выделяю этот файл
2. Выбираю Создать

и ничего не делая пытаюсь его закрыть до сих пор спрашивает сохранитьли изменения
 ??


Записан
HandKot
Молодой специалист

ru
Offline Offline

« Ответ #15 : 08-04-2011 11:14 » 

насколько я понял, без файла нифига ничег не получится
Записан

I Have Nine Lives You Have One Only
THINK!
Ципихович Эндрю
Помогающий

ru
Offline Offline

« Ответ #16 : 08-04-2011 14:27 » 

пожалуйста

Добавлено через 22 минуты и 53 секунды:
о чудо теперь
когда
1. В проводнике курсором выделяю этот файл
2. Выбираю Создать
2 раза спросит, Баден-Баден Улыбаюсь))



Добавлено через 14 часов, 40 минут и 11 секунд:
также пробовал эту строку
Application.DisplayAlerts=wdAlertsNone
а Автоклозе - нифига

* 1.zip (149.07 Кб - загружено 1021 раз.)
« Последнее редактирование: 09-04-2011 05:30 от Ципихович Эндрю » Записан
HandKot
Молодой специалист

ru
Offline Offline

« Ответ #17 : 11-04-2011 05:12 » 

насколько я понял, Вы нифига не пытались понять то, о чем я пимсал

что будет если сделать как показано ниже
Код:
Sub AutoNew()
'AutoNew - макрос работает только будучи написанным в шаблоне, на основании которого создается новый документ Ворд
    Application.Run "Normal.Добавляем_в_комбобокс_строки.Добавить_строки_в_комбобокс_при_открытии_файла"
   ThisDocument.Saved = True
End Sub

а AutoClose вообще выкинуть?
Записан

I Have Nine Lives You Have One Only
THINK!
Ципихович Эндрю
Помогающий

ru
Offline Offline

« Ответ #18 : 11-04-2011 12:12 » 

что будет, всё также будет исправно спрашивать:
Сохранить ли изменения, спрашивает в обоих случаях
Записан
HandKot
Молодой специалист

ru
Offline Offline

« Ответ #19 : 11-04-2011 12:32 » 

ну значит, спрашивает только у Вас и значит в документе происходят еще какие-то изменения после AutoNew.

У меня все закрывает без запроса
Записан

I Have Nine Lives You Have One Only
THINK!
Ципихович Эндрю
Помогающий

ru
Offline Offline

« Ответ #20 : 11-04-2011 12:41 » new

не ну хорошо, есть у меня в Нормал.дот АутоОпен, но когда я с Нормала запускаю файл закрывается как по маслу без запросов
буду пробовать

Добавлено через 5 минут и 35 секунд:
попробовал то же самое, спрашивает, мистика какая-то
« Последнее редактирование: 11-04-2011 12:46 от Ципихович Эндрю » Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines