1

Тема: Сохранение файла в определенную папку

Добрый день!
подскажите как сохранять файл в определенную папку, при этом имя файла вводить самому

спасибо

2

Re: Сохранение файла в определенную папку

нужен макрос

3

Re: Сохранение файла в определенную папку

Jonny_B пишет:

нужен макрос

Например, это можно сделать можно с помощью VBA-кода, приведенного ниже.
Стартовый макрос - SDDF1, в нем можно указать фиксированный путь к целевой папке.
Если таких папок несколько, то можно создать необходимое число макросов SDDFN, со своими настройками для папок. Потом для макросов SDDFN можно создать горячие клавиши, либо вынести иконки для их запуска на QAT.
'------------------------------------------------------------------------------------------------------
Sub SaveDocumentToDefinedFolder(folderpath As String)
Dim docname  As String
Dim saveerr As Long
'Запрос имени документа
docname = InputBox("Укажите имя файла", "Сохранение документа с заданным именем")
If Trim$(docname) <> "" Then
    ChangeFileOpenDirectory folderpath & "\"
    saveerr = 0
    On Error Resume Next
    'Параметры сохранения можно изменить
    ActiveDocument.SaveAs2 FileName:=docname & ".docx", FileFormat:= _
        wdFormatXMLDocument, LockComments:=False, Password:="", AddToRecentFiles _
        :=True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts _
        :=False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
        SaveAsAOCELetter:=False, CompatibilityMode:=14
    saveerr = err.Number
    On Error GoTo 0
    If saveerr <> 0 Then
        MsgBox "Не удалось сохранить файл" & vbCrLf & _
        folderpath & "\" & docname & _
        "Код ошибки = " & CStr(saveerr)
    End If
End If
End Sub
Sub SDDF1()
SaveDocumentToDefinedFolder "C:\Temp"
End Sub

4

Re: Сохранение файла в определенную папку

спасибо работает, а как реализовать через стандартную форму ?

5

Re: Сохранение файла в определенную папку

всем доброе утро!
подскажите макросы включены а код пишет что макрос не найден. Возможно он отключен по соображениям безопасности. мне нужно сохранить этот код в виде надстройки, шаблона dotm?

6

Re: Сохранение файла в определенную папку

Jonny_B пишет:

всем доброе утро!
подскажите макросы включены а код пишет что макрос не найден. Возможно он отключен по соображениям безопасности. мне нужно сохранить этот код в виде надстройки, шаблона dotm?

Попробуйте добавить дополнительный шаблон:
http://wordexpert.ru/forum/viewtopic.php?id=2690

Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.

7

Re: Сохранение файла в определенную папку

Jonny_B пишет:

спасибо работает, а как реализовать через стандартную форму ?

Я не знаю, насколько глубоко вы собираетесь прорабатывать эту задачу, но прежде всего необходим список минимальных требований и вытекающий из них план разработки. Я придерживался бы следующего плана (сам код писать не буду ввиду нехватки времени):
1. В редакторе интерфейса (VBE) я создал бы пользовательскую форму (с именем объекта, напр., frmSaveToFolder).
2. На форме разместил бы управляющие элементы: поле ввода имени документа (txtDocName), поле со списком для хранения путей к целевым папкам (cmbFoldersList) и командную кнопку сохранения текущего документа с заданными на форме параметрами (cmdSaveDocument).
3. Все добавляемые в поле   cmbFoldersList новые значения путей к папкам я бы сохранял во внешнем ini-файле, а при открытии формы заполнял бы список поля ранее сохраненными в ini-файле значениями. Пользователь мог бы как добавлять в поле cmbFoldersList новые значения, так и выбирать их из списка; самые последние добавленные или выбранные значения располагались бы в начале списка.
4. Перед сохранением поля пользователь указывает наименование документа и путь к целевой папке (по умолчанию в поле пути к папке должен быть отображен последний использованный путь).
5. По щелчку на кнопке cmdSaveDocument вызывалась бы ранее представленная мной процедура SaveDocumentToDefinedFolder с параметром, отвечающим содержимому поля cmbFoldersList. При этом в тексте процедуры необходимо заменить оператор "docname = InputBox ... " оператором docname = txtDocName.Value. Возможно, стоит добавить перед сохранением проверку того, существует ли уже целевой файл (если недопустимо сохранение с перезаписью файла).
Удачи в VBA-разработке!