Задание имени файла Word перед сохранением в зависимости от даты и закладок в файле.

Автор Посетитель 31.01.2024, 31 января 2024, 15:02

Посетитель 31.01.2024

Добрый день. Никак не могу справить с задачей: есть шаблон Word, используемый для акта приемки передачи оборудования в ремонт. в этом шаблоне есть 2 закладки (bookmark): "Customer_name" и "Service_center_name". Подскажите пожалуйста, как можно с помощью макросов сделать так, чтобы после открытия шаблона (создается новый документ Document1 из шаблона) и его заполнения, при первой попытке сохранить файл через стандартные кнопки программы word "Сохранить как" или "Сохранить", word предлагал сохранить файл с следующим именем: "YYYY-MM-DD Акт приемки-передачи Customer_name - Service_center_name.docx".

Заранее благодарю.


Администратор

В версии Microsoft 365, если щёлкнуть на Панели инструментов кнопку "Сохранить", то диалог "Сохранить как" не появляется, а появляется другое представление. Как в этом представлении указать нужное имя для файла, я не знаю.

Посетитель 31.01.2024

Спасибо за ответ. У меня стандартный word 2016. Я подумал, что как-то через title можно сделать, но пока ничего не получается. Если будут идеи, буду благодарен!

Администратор

Когда вы сохраняете документ, который ещё не сохранялся, в Ворде 2016 что появляется:
диалог "Сохранить как"
представление?

Цитата:
Я подумал, что как-то через title можно сделать, но пока ничего не получается.

Приведите пример кода, в котором используется title.

Посетитель 31.01.2024

Нет кода, ну точнее есть, но он не рабочий))

Private Sub Document_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Dim strDate As String
    Dim strData1 As String
    Dim strData2 As String
    Dim strNewName As String

    ' Получаем текущую дату
    strDate = Format(Now, "yyyy-mm-dd")

    ' Получаем данные из двух закладок
    strData1 = ActiveDocument.Bookmarks("Customer_name").Range.Text
    strData2 = ActiveDocument.Bookmarks("Service_center_name").Range.Text

    ' Формируем новое имя файла
    strNewName = strDate & "_" & strData1 & "_" & strData2 & ".docx"

    ' Если сохранение через UI, предлагаем изменить имя файла
    If SaveAsUI Then
        Cancel = True
        Application.DisplayAlerts = True
        Application.ActiveDocument.SaveAs strNewName
    End If
End Sub

Если запускать код из редактора, то работает.

Администратор

В ответе было два вопроса. Вы ответили на один.
Повторю ещё первый вопрос:
Когда вы сохраняете документ, который ещё не сохранялся, в Ворде 2016 что появляется:
диалог "Сохранить как"
представление?