Статьи из блога

Статьи из блога

Автоматическое сохранение документа при его закрытии

Рубрика: Макросы, Вопрос-Ответ
Метки: |
Понедельник, 7 сентября 2009 г.
Просмотров: 16474
Подписаться на комментарии по RSS
Версия для печати

[Ссылки на статью]

Вопрос от Михаила:

Как сделать так, чтобы при закрытии документа Word не выдавал окно с запросом на его сохранение и автоматически сохранял его всегда?

Михаил, если документ изменялся, то сообщение о необходимости сохранения изменений будет выводится всегда. Но вы можете воспользоваться следующим макросом:

Sub AutoClose()
  If ActiveDocument.Saved = False Then ActiveDocument.Save
End Sub

Этот макрос будет сохранять документ всякий раз при его закрытии автоматически.

Если вы не знаете, как подключить к документу и применить эти макросы, изучите следующие заметки с сайта:

Создание макроса из готового кода

Автоматическая запись макроса

twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru rutvit.ru myspace.com technorati.com digg.com friendfeed.com pikabu.ru blogger.com liveinternet.ru livejournal.ru memori.ru google.com bobrdobr.ru mister-wong.ru yahoo.com yandex.ru del.icio.us

Еще записи по вопросам использования Microsoft Word:

Комментариев: 13

  1. Андрей
    08.09.2009 в 12:16 | #1

    А как с помощью макроса можно указать путь для сохранения документа? Т.е. при выполнении макроса открывается диалоговое окно сохранении документа, а в нем уже открыта определенная папка. Названием документа при этом является первый абзац документа.

  2. 08.09.2009 в 12:32 | #2

    Sub MyFileSave()
      With Dialogs(wdDialogFileSaveAs)
        .Name = Left(ActiveDocument.Paragraphs(1).Range.Text, Len(ActiveDocument.Paragraphs(1).Range.Text) - 1)
        .Show
      End With
    End Sub

  3. Андрей
    08.09.2009 в 12:43 | #3

    А где в коде указать путь к папке?

  4. 08.09.2009 в 12:53 | #4

    Прошу прощения,

    Sub MyFileSave()
      Dim sPath As String
      sPath = "D:\"
      With Dialogs(wdDialogFileSaveAs)
        .Name = sPath & Left(ActiveDocument.Paragraphs(1).Range.Text, Len(ActiveDocument.Paragraphs(1).Range.Text) - 1)
        .Show
      End With
    End Sub

    Если указать просто путь, без имени, то окно просто откроется в указанной папке

  5. Андрей
    08.09.2009 в 13:35 | #5

    Почему то в кавычках название появлялось. Убрал .Name получилось без кавычек. Правда, если длинный абзац будет, то часть абзаца "обрежется". Но это ничего.

    Спасибо.

  6. Кирилл
    23.09.2009 в 16:39 | #6

    Доброго времени суток. Простите заранее может быть не туда пишу, но кол-во знаний большее не позволили. Сталкнулся с некой проблемой на работе. Требуется макрос для автосохранения документа ( ActiveDocument.Save ) через определённое время. Естественно с корекцией времени. Спасибо большое заранее!

  7. 23.09.2009 в 19:10 | #7

    Кирилл, вот пример такого макроса. Откройте глобальный шаблон Normal.dot и вставьте код (поправьте время, через которое будет срабатывать автосохранение):

    Sub AutoExec()
    Application.OnTime Now + TimeValue("00:00:07"), "saveDoc"
    End Sub
    Sub saveDoc()
    If ActiveDocument.Saved = False Then ActiveDocument.Save
    Call AutoExec
    End Sub

  8. 23.09.2009 в 19:11 | #8

    P.S. В этом макросе автосохранение срабатывает через 7 секунд.

  9. Кирилл
    23.09.2009 в 21:06 | #9

    Кроме как спасибо и сказать не чего не могу. Работает!!!

  10. Игорь
    25.09.2009 в 10:28 | #10

    А как сделать наоборот, чтобы при закрытии документ автоматически НЕ сохранялся?

    Спасибо!

  11. Екатерина
    06.04.2010 в 19:36 | #11

    приветствую Экспертов! Столкнулась со следующей проблемой: необходимо в вордовской форме (офис 2007) на кнопку назначить функцию "при нажатии на неё документ сохранить, сделать файлом вложения в новое письмо Outlook и отправить по указанному адресу" (т.е. при нажатии на кнопку данный документ должен сохраниться в виде файла вложения к письму используемой почтовой программы). Email на кнопку я задала гиперссылкой, однако, создавая новое письмо, сам документ файлом вложения не становится... Видимо надо создавать макрос, но какой?.. Заранее благодарю за ответ!

  12. александр
    06.03.2013 в 15:20 | #12

    а как сделать, чтобы с помощью макроса документ сохранялся в определенную папку с именем (имя файла - номер, например 1), а следующий документ сохранялся туда же но с именем следующего номера? (т.е. следующее имя должно быть 2, а следующее 3 и так далее) заранее спасибо

  13. Влад
    01.04.2013 в 23:26 | #13

    Ребята, подскажите макрос на пересохранение текущего документа в указанной папке с именем материнского файла и переменной (например документ1, документ2, документ3). И по возможности - аналогичный макрос, который бы срабатывал при закрытии активного документа

Оставьте комментарий!

(обязательно)

^ Наверх