Форум по VBA и MS Office

Word => Макросы в Word => Тема начата: Посетитель от 31 января 2024, 15:02

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

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

Название: Задание имени файла Word перед сохранением в зависимости от даты и закладок в файле.
Отправлено: Администратор от 31 января 2024, 16:29
В версии Microsoft 365, если щёлкнуть на Панели инструментов кнопку "Сохранить", то диалог "Сохранить как" не появляется, а появляется другое представление. Как в этом представлении указать нужное имя для файла, я не знаю.
Название: Задание имени файла Word перед сохранением в зависимости от даты и закладок в файле.
Отправлено: Посетитель от 01 февраля 2024, 10:18
Спасибо за ответ. У меня стандартный word 2016. Я подумал, что как-то через title можно сделать, но пока ничего не получается. Если будут идеи, буду благодарен!
Название: Задание имени файла Word перед сохранением в зависимости от даты и закладок в файле.
Отправлено: Администратор от 01 февраля 2024, 12:01
Когда вы сохраняете документ, который ещё не сохранялся, в Ворде 2016 что появляется:
диалог "Сохранить как"
представление?

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

Приведите пример кода, в котором используется title.
Название: Задание имени файла Word перед сохранением в зависимости от даты и закладок в файле.
Отправлено: Посетитель от 05 февраля 2024, 11:30
Нет кода, ну точнее есть, но он не рабочий))

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

Если запускать код из редактора, то работает.
Название: Задание имени файла Word перед сохранением в зависимости от даты и закладок в файле.
Отправлено: Администратор от 05 февраля 2024, 11:34
В ответе было два вопроса. Вы ответили на один.
Повторю ещё первый вопрос:
Когда вы сохраняете документ, который ещё не сохранялся, в Ворде 2016 что появляется:
диалог "Сохранить как"
представление?