Function Концовка_для_всех_кнопок(ByVal Текст_имени_нового_сохраняемого_документа As String)
Dim Новый_не_сохранённый_ранее_Документ As Boolean
If Len(ActiveDocument.Path) = 0 Then Новый_не_сохранённый_ранее_Документ = True
'условие, если документ не был сохранён ранее, тогда ...
If Новый_не_сохранённый_ранее_Документ = True Then
Место_нахождения_активного_документа = ActiveDocument.AttachedTemplate.Path & Application.PathSeparator 'Application.PathSeparator - это наклонная
Else 'в противном случае
Место_нахождения_активного_документа = ActiveDocument.Path & Application.PathSeparator 'Application.PathSeparator - это наклонная
End If
Dim Имя_активного_документа_с_расширением As String 'объявление переменной типа строковая переменная - As String
Имя_активного_документа_с_расширением = ActiveDocument.Name 'имя активного документа
'условие, если полное имя активного документа, то есть место его сохранения и его имя с расширением
'равно
'полному имени файла под которым требуется сохранить файл
'тогда скрыть форму, выдать сообщение, выйти с процедуры
If ActiveDocument.FullName = Место_нахождения_активного_документа & Текст_имени_нового_сохраняемого_документа Then Unload Me: MsgBox$ "Файл с именем:" & Chr$(13) & Текст_имени_нового_сохраняемого_документа & Chr$(13) & "по адресу:" & Chr$(13) & Место_нахождения_активного_документа & Chr$(13) & "уже существует", vbOKOnly, "ДОКУМЕНТ НЕ МОЖЕТ БЫТЬ СОХРАНЁН": Exit Function
'условие, если файл ...doc в папке ... на диске ... существует, надо указывать с расширением, например .doc, дословно если длина имени пути - Dir файла больше нуля тогда файл ... существует, тогда ...
If Len(Dir(Место_нахождения_активного_документа & Текст_имени_нового_сохраняемого_документа)) > 0 Then Unload Me: MsgBox$ "Файл с именем:" & Chr$(13) & Текст_имени_нового_сохраняемого_документа & Chr$(13) & "по адресу:" & Chr$(13) & Место_нахождения_активного_документа & Chr$(13) & "уже существует", vbOKOnly, "ДОКУМЕНТ НЕ МОЖЕТ БЫТЬ СОХРАНЁН": Exit Function
ActiveDocument.SaveAs FileName:=Место_нахождения_активного_документа & Текст_имени_нового_сохраняемого_документа, FileFormat:= _
wdFormatDocument, LockComments:=False, Password:="", AddToRecentFiles:= _
True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:= _
False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
SaveAsAOCELetter:=False
'условие, если документ был сохранён ранее, тогда удаляем старый документ
If Новый_не_сохранённый_ранее_Документ = False Then Kill (Место_нахождения_активного_документа & Имя_активного_документа_с_расширением) 'здесь получаю ошибку 70 Доступ запрещён, как её избежать???????
End Function
Форма находится в Нормал.дот в папке Формс
Ну так это же я послушал PsySex и сменил на
Do While NewPath + "" + NewName <> OldPath + "" + OldName
Loop
Ответ в Ворде есть кнопка по её нажатию выполняется макрос в котором одна строка Форма.Шоу
Форма находится в Нормал.дот в папке Формс
На форме 3 кнопки Сохранить
У каждой кнопки свои действия, а именно с закладок документа собрать новое имя - Текст_имени_нового_сохраняемого_документа
В конце кода каждой кнопки есть строка
Концовка_для_всех_кнопок Текст_имени_нового_сохраняемого_документа
И переходит на указанную функцию
Function Концовка_для_всех_кнопок(ByVal Текст_имени_нового_сохраняемого_документа As String)
Do While ActiveDocument.Name <> NewName
Loop
if LCase(OldName)<>"normal.dot" then
Kill OldPath + "" + OldName
endif
End If
'условие, если документ был сохранён ранее, тогда удаляем старый документ
If Новый_не_сохранённый_ранее_Документ = False Then
Do While ActiveDocument.Name <> NewName
Loop
If LCase(OldName) <> "normal.dot" Then Kill OldPath + "" + OldName 'ошибка 70 на этой строке в этот момент OldName = 111111111
End If
А это помоему надо постараться нужно чтобы
OldName было = "normal.dot"
То есть имя старого документа было "normal.dot"
Форма находится в Нормал.дот в папке Формс
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.