Когда шаблон открывается, он запускает модуль Auto_open.
Sub Auto_Open()
SaveAsUserForm.Show
End Sub
Затем появляется пользовательская форма с надписью «Сохранить как» и кнопкой «ОК».
Когда нажимается Ok, он запускает этот код.
Private Sub SaveAs_Click()
Dim bFileSaveAs As Boolean
bFileSaveAs = Application.Dialogs(xlDialogSaveAs).Show
If Not bFileSaveAs Then Unload Me
If bFileSaveAs Then
Dim x As Object
Set x = Application.VBE.ActiveVBProject.VBComponents
x.Remove VBComponent:=x.Item("Auto_Open")
Unload Me
End Sub
Это удаляет модуль Auto_Open, поэтому форма сохранения как пользователя не появляется в новом файле, который только что был сохранен. Но я хочу, чтобы он был отключен только в том случае, если используется функция сохранения как (как с помощью модуля автоматического открытия, так и на вкладке файла
Мне также это нужно, поэтому, если пользователь отменит поле, он полностью отключит функцию сохранения и разрешит только сохранение как. Но если используется функция сохранения, она запрашивает пароль, поэтому я могу редактировать шаблон.
Таким образом, в основном, когда пользователь открывает шаблон, он не может ничего сделать или изменить, если он сначала не Сохранить как. Затем, как только он будет сохранен как и имя файла изменится, он отключит модуль Auto_Open, поэтому он не будет запрашивать сохранение каждый раз, когда новый файл открыт.
If file saved As Then remove the auto_open macro
иif save function is used Then ask for password
- person Duraholiday   schedule 19.08.2015bFileSaveAs
перед удалением кода? - person Tim Williams   schedule 19.08.2015bFileSaveAs
будет False, если пользователь отменит диалоговое окно сохранения как, и True, если он действительно использует его для сохранения файла. - person Tim Williams   schedule 19.08.2015If True Then Disable Unload Me
If False Then Unload Me
? Хорошо, это устраняет половину проблемы, но если я отменю и использую сохранение, как на вкладке «Файл», это не отключит автоматическое открытие. - person Duraholiday   schedule 19.08.2015