1

Я пытаюсь закрыть документ при сохранении, используя VBA.

Я искал это широко, но в основном это происходит с людьми, пытающимися не отключать сохранение при закрытии документа. То, что я пока имею, - следующее (я удалил несвязанный код).

Private Sub App_DocumentBeforeSave(ByVal Doc As Document, SaveAsUI As Boolean, Cancel As Boolean)
    ActiveDocument.Close
End Sub

Это приводит к сбою слова и не к сохранению документа, возможно, из-за неправильной процедуры? Замена ActiveDocument.close на App.Quit работает, но это закрывает все открытые документы (это не желаемое поведение).

Любые идеи будут с благодарностью.

1 ответ1

1

Я пытаюсь закрыть документ при сохранении, используя VBA.

Вы можете переопределить (изменить) существующие текстовые команды.

В этом случае вам нужно изменить FileSave и добавить ActiveDocument.Close после ActiveDocument.Save в коде ниже.


Изменение команды Word

В этом примере рассматриваются шаги, необходимые для изменения команды FileSave .

  1. В меню Сервис выберите пункт Макрос, а затем нажмите Макросы.

  2. В поле «Макросы в» выберите «Команды Word».

  3. В поле Имя макроса выберите FileSave.

  4. В поле «Макросы в» выберите шаблон или расположение документа для хранения макроса.

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

  5. Нажмите кнопку Создать.

Макрос FileSave выглядит так, как показано ниже.

Sub FileSave()
'
' FileSave Macro
' Saves the active document or template
'
    ActiveDocument.Save

End Sub

Вы можете добавить дополнительные инструкции или удалить существующий ActiveDocument.Save инструкцию.

Теперь каждый раз, когда запускается команда FileSave , ваш макрос FileSave запускается вместо команды word. Чтобы восстановить исходную функциональность FileSave , вам необходимо переименовать или удалить макрос FileSave .

Источник, Изменяющий Команду Word

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .